Bug 132613 - NPE in java builder when trying to retrieve a file
Summary: NPE in java builder when trying to retrieve a file
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.2 M6   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-20 20:29 EST by Olivier Thomann CLA
Modified: 2006-03-29 05:40 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Thomann CLA 2006-03-20 20:29:31 EST
Using I0309, I got this exception in the log.
I don't have steps to reproduce.

java.lang.NullPointerException
        at
org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
        at org.eclipse.core.filesystem.EFS.getStore(EFS.java:296)
        at org.eclipse.jdt.internal.core.util.Util.toLocalFile(Util.java:2044)
        at
org.eclipse.jdt.internal.core.builder.ClasspathJar.<init>(ClasspathJar.java:91)
        at
org.eclipse.jdt.internal.core.builder.ClasspathLocation.forLibrary(ClasspathLocation.java:38)
        at org.eclipse.jdt.internal.core.builder.State.read(State.java:255)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:125)
        at
org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:2586)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:1365)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:367)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:150)
        at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202)
        at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234)
        at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253)
        at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282)
        at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
        at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:204)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
org.eclipse.core.runtime.CoreException[2]: java.lang.NullPointerException
        at
org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
        at org.eclipse.core.filesystem.EFS.getStore(EFS.java:296)
        at org.eclipse.jdt.internal.core.util.Util.toLocalFile(Util.java:2044)
        at
org.eclipse.jdt.internal.core.builder.ClasspathJar.<init>(ClasspathJar.java:91)
        at
org.eclipse.jdt.internal.core.builder.ClasspathLocation.forLibrary(ClasspathLocation.java:38)
        at org.eclipse.jdt.internal.core.builder.State.read(State.java:255)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:125)
        at
org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:2586)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:1365)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:367)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:150)
        at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202)
        at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234)
        at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253)
        at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282)
        at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
        at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:204)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
java.lang.NullPointerException
        at
org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
        at org.eclipse.core.filesystem.EFS.getStore(EFS.java:296)
        at org.eclipse.jdt.internal.core.util.Util.toLocalFile(Util.java:2044)
        at
org.eclipse.jdt.internal.core.builder.ClasspathJar.<init>(ClasspathJar.java:91)
        at
org.eclipse.jdt.internal.core.builder.ClasspathLocation.forLibrary(ClasspathLocation.java:38)
        at org.eclipse.jdt.internal.core.builder.State.read(State.java:255)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:125)
        at
org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:2586)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:1365)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:367)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:150)
        at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202)
        at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234)
        at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253)
        at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282)
        at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
        at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:204)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
org.eclipse.core.runtime.CoreException[2]: java.lang.NullPointerException
        at
org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
        at org.eclipse.core.filesystem.EFS.getStore(EFS.java:296)
        at org.eclipse.jdt.internal.core.util.Util.toLocalFile(Util.java:2044)
        at
org.eclipse.jdt.internal.core.builder.ClasspathJar.<init>(ClasspathJar.java:91)
        at
org.eclipse.jdt.internal.core.builder.ClasspathLocation.forLibrary(ClasspathLocation.java:38)
        at org.eclipse.jdt.internal.core.builder.State.read(State.java:255)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:125)
        at
org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:2586)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:1365)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:367)
        at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:150)
        at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202)
        at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234)
        at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253)
        at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282)
        at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
        at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:204)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Comment 1 Kent Johnson CLA 2006-03-21 03:41:51 EST
John - any ideas?

Is this something we need to handle or is it your bug?
Comment 2 John Arthorne CLA 2006-03-27 10:27:49 EST
The problem is in ClasspathJar:

Util.toLocalFile(resource.getLocationURI(), null)

The NPE is caused by resource.getLocationURI() returning null. This means the resource's project does not exist.
Comment 3 Kent Johnson CLA 2006-03-28 10:54:55 EST
Added NPE check that was removed when moving from getLocation() to getLocationURI()
Comment 4 Frederic Fusier CLA 2006-03-29 05:40:23 EST
Verified for 3.2 M6 using build I20060329-0010.