From: Hendrik <nh...@us...> - 2007-02-05 21:51:32
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/update In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30355/src/games/stendhal/client/update Modified Files: Bootstrap.java Log Message: splitted PrivilagedBoot.boot Index: Bootstrap.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/update/Bootstrap.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** Bootstrap.java 5 Feb 2007 21:37:22 -0000 1.29 --- Bootstrap.java 5 Feb 2007 21:51:28 -0000 1.30 *************** *** 149,156 **** * Do the whole start up process in a privilaged block */ ! private class PrivilagedBoot implements PrivilegedAction { private String className = null; private String[] args = null; ! public PrivilagedBoot(String className, String[] args) { this.className = className; --- 149,162 ---- * Do the whole start up process in a privilaged block */ ! private class PrivilagedBoot<T> implements PrivilegedAction<T> { private String className = null; private String[] args = null; ! ! /** ! * Creates a PrivilagedBoot object ! * ! * @param className className to boot ! * @param args arguments for the main-method ! */ public PrivilagedBoot(String className, String[] args) { this.className = className; *************** *** 158,164 **** } ! public Object run() { ! init(); ! // invoke update handling first try { --- 164,171 ---- } ! /** ! * Handles the update procedure ! */ ! private void handleUpdate() { // invoke update handling first try { *************** *** 180,185 **** e.printStackTrace(System.err); } ! // store boot prop (if they ware altered during update) try { saveBootProp(); --- 187,196 ---- e.printStackTrace(System.err); } + } ! /** ! * store boot prop (if they ware altered during update) ! */ ! private void storeBootProp() { try { saveBootProp(); *************** *** 187,195 **** JOptionPane.showMessageDialog(null, "Sorry, an error occured while downloading the update. Could not write bootProperties"); } ! // load program (regenerate classloader stuff) try { ClassLoader classLoader = createClassloader(); - // Thread.currentThread().setContextClassLoader(classLoader); Class clazz = classLoader.loadClass(className); Method method = clazz.getMethod("main", args.getClass()); --- 198,212 ---- JOptionPane.showMessageDialog(null, "Sorry, an error occured while downloading the update. Could not write bootProperties"); } + } ! /** ! * load program ! */ ! private void loadProgram() { ! // regenerate classloader stuff, because in handleUpdate additional ! // .jar-files may have been added ! try { ClassLoader classLoader = createClassloader(); Class clazz = classLoader.loadClass(className); Method method = clazz.getMethod("main", args.getClass()); *************** *** 210,213 **** --- 227,238 ---- } } + + } + + public T run() { + init(); + handleUpdate(); + storeBootProp(); + loadProgram(); return null; } *************** *** 227,231 **** t.printStackTrace(System.err); } ! AccessController.doPrivileged(new PrivilagedBoot(className, args)); } --- 252,256 ---- t.printStackTrace(System.err); } ! AccessController.doPrivileged(new PrivilagedBoot<Object>(className, args)); } |