Community
Participate
Working Groups
The addition of this field requires the resource plugin to be initialized in order to start the java model manager. This breaks the fact that the DOM/AST parser can be used without having Eclipse running. It is no longer possible to retrieve the JavaCore.getOptions() outside of a headless Eclipse. java.lang.ExceptionInInitializerError at org.eclipse.jdt.core.JavaCore.getOptions(JavaCore.java:3132) at org.eclipse.jdt.core.dom.ASTParser.initializeDefaults(ASTParser.java:232) at org.eclipse.jdt.core.dom.ASTParser.<init>(ASTParser.java:215) at org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:115) at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner.scan(TagScanner.java:440) at org.eclipse.pde.api.tools.model.tests.TagScannerTests.doScan(TagScannerTests.java:82) at org.eclipse.pde.api.tools.model.tests.TagScannerTests.testBug212276(TagScannerTests.java:110) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.lang.IllegalStateException: Workspace is closed. at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:326) at org.eclipse.jdt.internal.core.ExternalFoldersManager.getExternalFoldersProject(ExternalFoldersManager.java:108) at org.eclipse.jdt.internal.core.ExternalFoldersManager.<init>(ExternalFoldersManager.java:38) at org.eclipse.jdt.internal.core.JavaModelManager.<init>(JavaModelManager.java:410) at org.eclipse.jdt.internal.core.JavaModelManager.<clinit>(JavaModelManager.java:969) ... 27 more
Created attachment 90845 [details] Proposed fix The fix consists in lazy initializing the "folders" of the ExternalFoldersManager. So if not used (as in the secnario described above), the Platform won't be accessed. Note there is no regression test as this would require to run the test externally to the Platform.
Fix released for 3.4M6
Verified for 3.5M2