Unregister whatever is registered in the MainLookup, so that the tool can be safely run repeatedly in the same VM.
1.1 --- a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java Mon Sep 24 09:27:01 2012 +0200
1.2 +++ b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java Mon Sep 24 10:37:19 2012 +0200
1.3 @@ -343,10 +343,16 @@
1.4 return 1;
1.5 }
1.6
1.7 + Object[] register2Lookup = new Object[] {
1.8 + new ClassPathProviderImpl(bootCP, compileCP, sourceCP),
1.9 + new JavaPathRecognizer(),
1.10 + new SourceLevelQueryImpl(sourceCP, sourceLevel)
1.11 + };
1.12 +
1.13 try {
1.14 - MainLookup.register(new ClassPathProviderImpl(bootCP, compileCP, sourceCP));
1.15 - MainLookup.register(new JavaPathRecognizer());
1.16 - MainLookup.register(new SourceLevelQueryImpl(sourceCP, sourceLevel));
1.17 + for (Object toRegister : register2Lookup) {
1.18 + MainLookup.register(toRegister);
1.19 + }
1.20
1.21 setHintPreferences(hintSettings);
1.22
1.23 @@ -359,6 +365,10 @@
1.24 }
1.25 } catch (Throwable e) {
1.26 e.printStackTrace();
1.27 + } finally {
1.28 + for (Object toUnRegister : register2Lookup) {
1.29 + MainLookup.unregister(toUnRegister);
1.30 + }
1.31 }
1.32 } finally {
1.33 if (deleteCacheDir) {