Community
Participate
Working Groups
Hi, just a message. I did not see any mistakes in my project, but maybe it is of interest to you. I start eclipse (2.0.2) on a SuSE-Linux 8.0. there weren't any problems up to now, except some Out-Of-Memory-problems. So the call 'eclipse -Xms128m -Xmx256m -Xss32m $*' did solve that memory problem at most of all uses. Today I got some problems with the machines memory (only a few KB were free to use). Rebooting was necessary. After that i started eclipse again to repair some of my bugs, nothing exceptional happened. After closing the project and ending eclipse I saw those exceptions marked in the shell: abcmaint@tuxweb01:> eclipse & [1] 2604 abcmaint@tuxweb01:> java.lang.NullPointerException at org.eclipse.jdt.internal.core.Openable.resourceExists(Openable.java:440) at org.eclipse.jdt.internal.core.PackageFragmentRoot.openWhenClosed(PackageFragmentRoot.java:352) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.openWhenClosed(JarPackageFragmentRoot.java:605) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy(JavaElement.java:521) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:308) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:264) at org.eclipse.jdt.internal.core.NameLookup.seekPackageFragments(NameLookup.java:509) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:361) at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:64) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:143) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:94) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:116) at org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:671) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:1070) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:917) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:39) at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:91) at org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolveType(ClassLiteralAccess.java:68) at org.eclipse.jdt.internal.compiler.ast.Expression.resolveTypeExpecting(Expression.java:438) at org.eclipse.jdt.internal.compiler.ast.ArrayInitializer.resolveTypeExpecting(ArrayInitializer.java:132) at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolve(FieldDeclaration.java:171) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:900) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:940) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:235) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:571) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.resolve(CompilationUnitProblemFinder.java:159) at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java:410) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:71) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:125) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:101) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:150) java.lang.NullPointerException at org.eclipse.jdt.internal.core.Openable.resourceExists(Openable.java:440) at org.eclipse.jdt.internal.core.PackageFragmentRoot.openWhenClosed(PackageFragmentRoot.java:352) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.openWhenClosed(JarPackageFragmentRoot.java:605) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy(JavaElement.java:521) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:308) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:264) at org.eclipse.jdt.internal.core.NameLookup.seekPackageFragments(NameLookup.java:509) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:361) at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:64) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:143) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:94) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:116) at org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:671) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:1070) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:917) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:39) at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:91) at org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolveType(ClassLiteralAccess.java:68) at org.eclipse.jdt.internal.compiler.ast.Expression.resolveTypeExpecting(Expression.java:438) at org.eclipse.jdt.internal.compiler.ast.ArrayInitializer.resolveTypeExpecting(ArrayInitializer.java:132) at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolve(FieldDeclaration.java:171) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:900) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:940) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:235) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:571) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.resolve(CompilationUnitProblemFinder.java:159) at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java:410) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:71) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:125) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:101) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:150) [1] + Done eclipse abcmaint@tuxweb01:> Hope, it is of interest to you. ciao, Heribert Zok
looks like java core
I suspect we addressed this in 2.1 stream. Did you try to reproduce it in latest integration build (I20030304) ?
According to the 2.0.2 source, the NPE can happen only if ResourcesPlugin.getWorkspace() returns null. This happens only on shutdown. The reconciler thread was still running after the workspace was reset to null. I confirm that this would have no consequence on restart. We could still add a protection in the 2.1 code.
ResourcesPlugin.getWorkspace() should never return null. Entered bug 34069.
Added null check in 2.1 stream.
Verified.