Bug 33998 - unexpected NullPointerException
Summary: unexpected NullPointerException
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0.2   Edit
Hardware: PC Linux-Motif
: P3 minor (vote)
Target Milestone: 2.1 RC3   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-03-06 12:38 EST by Heribert Zok CLA
Modified: 2003-03-19 07:53 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Heribert Zok CLA 2003-03-06 12:38:31 EST
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
Comment 1 Adam Kiezun CLA 2003-03-06 12:55:50 EST
looks like java core
Comment 2 Philipe Mulet CLA 2003-03-06 13:01:58 EST
I suspect we addressed this in 2.1 stream. Did you try to reproduce it in 
latest integration build (I20030304) ?
Comment 3 Jerome Lanneluc CLA 2003-03-07 06:06:54 EST
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.
Comment 4 Jerome Lanneluc CLA 2003-03-07 06:52:05 EST
ResourcesPlugin.getWorkspace() should never return null. Entered bug 34069.
Comment 5 Jerome Lanneluc CLA 2003-03-07 06:57:02 EST
Added null check in 2.1 stream.
Comment 6 David Audel CLA 2003-03-19 07:53:21 EST
Verified.