Bug 236255

Summary: [1.6][compiler] NullPointerException in jdt.internal.compiler processAnnotations
Product: [Eclipse Project] JDT Reporter: Chris Eagan <ceagan>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: RESOLVED DUPLICATE QA Contact:
Severity: major    
Priority: P3 CC: Olivier_Thomann, philippe_mulet
Version: 3.3.1   
Target Milestone: 3.3.2   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Chris Eagan CLA 2008-06-09 11:17:45 EDT
Build ID: M20071023-1652

The Problem:
In an automated, headless build, our very large codebase fails to compile when too much of it is compiled at one time.

I have seen this issue more often in newer builds so I backed out to a slightly older build which didn't seem to cause this for me as often. We are using the pluginbuilder method for creating the headless build scripts. The codebase only fails when everything is compiled at once, but when all plug-ins are in the workspace in Eclipse, everything compiles fine.

While I have no knowledge of the inner-workings of the compiler, my first guess is that maybe that when the compiler is faced with some large number of annotations, a failure occurs. While the error has happened in many different places in our codebase through various attempts of removing certain plug-ins from the build, the error is always in processAnnotations at line 656.

Stack Trace:
     [java]     [javac] Internal compiler error
     [java]     [javac] java.lang.NullPointerException
     [java]     [javac] 	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:656)
     [java]     [javac] 	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:374)
     [java]     [javac] 	at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:3410)
     [java]     [javac] 	at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1607)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.eclipse.jdt.core.JDTCompilerAdapter.execute(JDTCompilerAdapter.java:79)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:997)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:820)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
     [java]     [javac] 	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
     [java]     [javac] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     [javac] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     [javac] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     [javac] 	at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     [javac] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
     [java]     [javac] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
     [java]     [javac] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
     [java]     [javac] 	at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:495)
     [java]     [javac] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     [javac] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.eclipse.ant.core.AntRunner.run(AntRunner.java:512)
     [java]     [javac] 	at org.eclipse.ant.core.AntRunner.start(AntRunner.java:599)
     [java]     [javac] 	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
     [java]     [javac] 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
     [java]     [javac] 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
     [java]     [javac] 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
     [java]     [javac] 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
     [java]     [javac] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     [javac] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     [javac] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     [javac] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     [javac] 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
     [java]     [javac] 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
     [java]     [javac] 	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
     [java]     [javac] 	at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Comment 1 Philipe Mulet CLA 2008-06-09 11:31:43 EDT
Need steps to reproduce.
Comment 2 Olivier Thomann CLA 2008-06-09 11:43:15 EDT
Could you please try 3.3.2 ?
We fixed something in this area for 3.3.2.
See bug 209961.
Comment 3 Chris Eagan CLA 2008-06-09 11:53:58 EDT
(In reply to comment #1)

Unfortunately, I cannot reproduce this issue with a small codebase so I have been unable to reproduce the issue using a small number of steps. I can tell you that the codebase being compiled is 85 plug-ins. I was able to reproduce it eliminating test plug-ins so I can reproduce it with as few as 64 plug-ins.
Comment 4 Chris Eagan CLA 2008-06-09 13:05:24 EDT
(In reply to comment #2)
> Could you please try 3.3.2 ?
> We fixed something in this area for 3.3.2.
> See bug 209961.
> 

It appears to be working now. I know that I had tried 3.3.2 to try to resolve this issue in the past, but maybe it has something to do with using a clean install of 3.3.2. In any case, I will close this for now since the 3.3.2 version seems to be working. Thank you for your help.
Comment 5 Olivier Thomann CLA 2008-06-09 13:11:15 EDT
Reopening to close as a dup of bug 209961.
Comment 6 Olivier Thomann CLA 2008-06-09 13:28:21 EDT
Closing as a dup of bug 209961.

*** This bug has been marked as a duplicate of bug 209961 ***