Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 329190

Summary: CoreOutputLocationManager.java:390
Product: [Tools] AJDT Reporter: felix.ziesel
Component: CoreAssignee: AJDT-inbox <AJDT-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3 CC: aclement, andrew.eisenberg
Version: 2.1.1   
Target Milestone: 2.1.2   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description felix.ziesel CLA 2010-11-01 09:39:08 EDT
When using <Select-Project-Context-Menu>->Properties->AspectJ Build->Inpath->Add Library->Plugin Dependencies and adding an non-default output folder at the bottom. Than pressing OK. I get the following Exception in the dialog:

java.lang.NullPointerException
at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.workspacePathToFile(CoreOutputLocationManager.java:390)
at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.init(CoreOutputLocationManager.java:220)
at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.<init>(CoreOutputLocationManager.java:160)
at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getOutputL ... oBuildJob.run(AutoBuildJob.java:242)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Compile error: NullPointerException thrown: null



The log in the workspace shows me:

!ENTRY org.eclipse.ajdt.ui 4 0 2010-11-01 14:34:15.155
!MESSAGE Compile error: NullPointerException thrown: null
!STACK 0
java.lang.NullPointerException
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.workspacePathToFile(CoreOutputLocationManager.java:390)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.init(CoreOutputLocationManager.java:220)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.<init>(CoreOutputLocationManager.java:160)
	at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getOutputLocationManager(CoreCompilerConfiguration.java:177)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.generateAjBuildConfig(AjdeCoreBuildManager.java:281)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:116)
	at org.aspectj.ajde.core.AjCompiler.build(AjCompiler.java:88)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:245)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.core.resources 4 2 2010-11-01 14:34:15.178
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.workspacePathToFile(CoreOutputLocationManager.java:390)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.init(CoreOutputLocationManager.java:220)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.<init>(CoreOutputLocationManager.java:160)
	at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getOutputLocationManager(CoreCompilerConfiguration.java:177)
	at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getChangedFiles(CoreCompilerConfiguration.java:674)
	at org.eclipse.ajdt.internal.builder.UIBuildListener.postAJBuild(UIBuildListener.java:224)
	at org.eclipse.ajdt.core.builder.AJBuilder.postCallListeners(AJBuilder.java:1352)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:258)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.core.resources 4 75 2010-11-01 14:34:15.238
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.ajdt.core 4 75 2010-11-01 14:34:15.238
!MESSAGE Errors running builder 'AspectJ Builder' on project 'com.atego.prototype.windowTester'.
!STACK 0
java.lang.NullPointerException
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.workspacePathToFile(CoreOutputLocationManager.java:390)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.init(CoreOutputLocationManager.java:220)
	at org.eclipse.ajdt.internal.core.ajde.CoreOutputLocationManager.<init>(CoreOutputLocationManager.java:160)
	at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getOutputLocationManager(CoreCompilerConfiguration.java:177)
	at org.eclipse.ajdt.internal.core.ajde.CoreCompilerConfiguration.getChangedFiles(CoreCompilerConfiguration.java:674)
	at org.eclipse.ajdt.internal.builder.UIBuildListener.postAJBuild(UIBuildListener.java:224)
	at org.eclipse.ajdt.core.builder.AJBuilder.postCallListeners(AJBuilder.java:1352)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:258)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Andrew Eisenberg CLA 2010-11-01 13:44:24 EDT
The problem here is that AJDT is mistakenly assuming that there is a one-to-one mapping between jars/folders coming in on the in path and the classpath entry that they correspond to.

When working with classpath containers and other projects coming in on the in path, we need to resolve their classpaths and add each one to the mapping.
Comment 2 Andrew Eisenberg CLA 2010-11-02 14:50:33 EDT
Fixed with regression tests.  Will be available in next dev build.