Unregister whatever is registered in the MainLookup, so that the tool can be safely run repeatedly in the same VM.
authorJan Lahoda <jlahoda@netbeans.org>
Mon, 24 Sep 2012 10:37:19 +0200
changeset 8770234448aa478
parent 876 cf176088c0fe
child 878 715e10b04115
Unregister whatever is registered in the MainLookup, so that the tool can be safely run repeatedly in the same VM.
cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java
     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) {