Home » Language IDEs » Java Development Tools (JDT) » Extremely slow APT
Extremely slow APT [message #258275] |
Mon, 26 January 2009 16:46  |
Eclipse User |
|
|
|
I'm running a custom annotation processor on a set of four custom
annotations. My annotation processor lives in jar and not in a plugin,
because I update it regularly and don't want to restart my IDE as often
as I regenerate the jar. So far, so good, everything works fine.
Until recently, where my IDE started becoming much less responsive. I
didn't know what it was due to, until it became unbearable: now, saving
certain files requires about 10 seconds. Turns out that disabling the
annotation processing makes it recover its snappiness instantly.
I did some basic profiling in my annotation processor, and found that my
code was not the bottleneck. It executes, for a single file, in about a
tenth of a second. Actually, even if I return AnnotationProcessors.NO_OP
from my AnnotationProcessorFactory, saving is this incredibly slow.
Can anyone help me understand why? What can I do against it? I also
found that when I save the file, the annotation processor is run three
times on it. Is this normal behavior?
Cheers,
J.-P.
|
|
|
Re: Extremely slow APT [message #258280 is a reply to message #258275] |
Mon, 26 January 2009 17:14   |
Eclipse User |
|
|
|
"J.-P. Pellet" <jpp-mac@gmx.net> wrote in message
news:gllb05$ui5$1@build.eclipse.org...
> I'm running a custom annotation processor on a set of four custom
> annotations. My annotation processor lives in jar and not in a plugin,
> because I update it regularly and don't want to restart my IDE as often as
> I regenerate the jar. So far, so good, everything works fine.
We still have to lock the jar file, though, to load the annotation processor
classes from it. If you were on Windows you probably wouldn't be able to
regenerate the jar at all; I'm guessing from your email address that maybe
you're on Mac, but I'm not sure what you're actually loading.
Packaging your processor as an Eclipse plugin, in addition to an exportable
jar, will ease your development process. Details on doing this are in a
tutorial downloadable from http://www.eclipse.org/jdt/apt/ . Eclipse has
good support for plug-in development.
An annotation processor is part of the compiler. It's a part you get to
write, but it's still part of the compiler. The compiler is not able to
reload parts of itself on the fly, unfortunately. You have to stop and
restart the VM containing the processor in order to ensure that a change
takes effect.
> Until recently, where my IDE started becoming much less responsive. I
> didn't know what it was due to, until it became unbearable: now, saving
> certain files requires about 10 seconds. Turns out that disabling the
> annotation processing makes it recover its snappiness instantly.
>
> I did some basic profiling in my annotation processor, and found that my
> code was not the bottleneck. It executes, for a single file, in about a
> tenth of a second. Actually, even if I return AnnotationProcessors.NO_OP
> from my AnnotationProcessorFactory, saving is this incredibly slow.
Were you able to determine what the bottleneck was? If you do a thread dump
from the console (you may wish to run eclipsec rather than eclipse, to
facilitate this), can you tell anything about where it's spending its time?
When you say "saving certain files", can you be more specific about exactly
what and how you're saving? Are you referring to manually saving edited
source files, or to generated files, or ...?
Any clues about what might have changed since your IDE was responsive?
Presumably it's not the code of the processor, if you can replace that with
a no-op processor. Have other jar files on the build path gotten bigger?
File system fragmented? What possibilities have you already ruled out?
> Can anyone help me understand why? What can I do against it? I also found
> that when I save the file, the annotation processor is run three times on
> it. Is this normal behavior?
It is not out of the question - it depends a lot on the details of what your
processor is doing, and whether it's a Java 5 or a Java 6 processor. I'm
guessing from your use of AnnotationProcessorFactory that you're using a
Java 5 processor, so you're probably getting called once for a reconcile
(the normal checking that happens whenever you make a change in the editor,
even before you save), and then two rounds for the build.
There are a bunch of tips on improving annotation processor performance in
the presentations referenced from the above web page. There are a lot of
pitfalls that can make a seemingly innocuous processor go bad. However, if
you're getting slow performance even with a no-op processor, presumably
that's not the issue; so I am not going to explore those here. Make sure
that finding holds up even if you exit and restart the IDE, though, because
due to locking of processor classes you may not have actually been running
the code you think you were.
One more possibility is that your processor may now, or at some point may
have, created a bunch of dependencies that are no longer valid but that are
still sticking around in the build state, causing excessive recompilation of
unrelated files. If you are doing processor development I would suggest
periodically clearing out and re-creating the project and workspace that you
are doing your processor testing in. In general best practice is to
separate processor development from project development. Get your processor
working on test projects first.
|
|
|
Re: Extremely slow APT [message #258288 is a reply to message #258280] |
Mon, 26 January 2009 18:37   |
Eclipse User |
|
|
|
Walter Harley wrote:
> We still have to lock the jar file, though, to load the annotation processor
> classes from it. If you were on Windows you probably wouldn't be able to
> regenerate the jar at all; I'm guessing from your email address that maybe
> you're on Mac, but I'm not sure what you're actually loading.
>
> Packaging your processor as an Eclipse plugin, in addition to an exportable
> jar, will ease your development process. Details on doing this are in a
> tutorial downloadable from http://www.eclipse.org/jdt/apt/ . Eclipse has
> good support for plug-in development.
>
> An annotation processor is part of the compiler. It's a part you get to
> write, but it's still part of the compiler. The compiler is not able to
> reload parts of itself on the fly, unfortunately. You have to stop and
> restart the VM containing the processor in order to ensure that a change
> takes effect.
Hi Walter. Thanks for the explanation. Recreating the jar seems to work
for me on both Mac OS X and Windows. The newer code is also executed.
While I understand the advantages of using plugins, using a jar also has
several advantages I see as outweighing those of the plugin, considering
we're developing the processors daily, in parallel to our main project,
as it evolves according to the requirements of the main project:
-- I don't need to restart my IDE each time I do a successful modification;
-- I don't need to tell everyone working with me that it's now time to
go get the new version of the annotation processor (which happens almost
daily), put the plugin into their IDE's plugin folder, and restart the
IDE. The jar gets pushed by the SCM system and the annotation processors
are automatically updated.
> Were you able to determine what the bottleneck was? If you do a thread dump
> from the console (you may wish to run eclipsec rather than eclipse, to
> facilitate this), can you tell anything about where it's spending its time?
How can I do this? I can't find eclipsec on my Mac. Should I start
Eclipse from the command line and hit some key combination?
> When you say "saving certain files", can you be more specific about exactly
> what and how you're saving? Are you referring to manually saving edited
> source files, or to generated files, or ...?
My annotation processor doesn't generate source files. The "certain
files" are the Java files which use my custom annotations, or
(apparently) other Java files which cause those annotated classes to be
recompiled (or is that reconciled?). This happens when I save them
manually from the Java Editor, or whenever it is rebuilding the workspace.
> Any clues about what might have changed since your IDE was responsive?
> Presumably it's not the code of the processor, if you can replace that with
> a no-op processor. Have other jar files on the build path gotten bigger?
> File system fragmented? What possibilities have you already ruled out?
I have packaged the processor as a plugin, consisting of half a dozen
classes of between, say, 10 and 400 lines of code. With no other
dependency. This didn't speed up the compilation. So I'd rule out the
hidden expensive dependency scenario...
> It is not out of the question - it depends a lot on the details of what your
> processor is doing, and whether it's a Java 5 or a Java 6 processor. I'm
> guessing from your use of AnnotationProcessorFactory that you're using a
> Java 5 processor, so you're probably getting called once for a reconcile
> (the normal checking that happens whenever you make a change in the editor,
> even before you save), and then two rounds for the build.
OK. Why two rounds for the build?
> There are a bunch of tips on improving annotation processor performance in
> the presentations referenced from the above web page. There are a lot of
> pitfalls that can make a seemingly innocuous processor go bad. However, if
> you're getting slow performance even with a no-op processor, presumably
> that's not the issue; so I am not going to explore those here. Make sure
> that finding holds up even if you exit and restart the IDE, though, because
> due to locking of processor classes you may not have actually been running
> the code you think you were.
As far as I can tell, restarting the IDE doesn't help at all.
> One more possibility is that your processor may now, or at some point may
> have, created a bunch of dependencies that are no longer valid but that are
> still sticking around in the build state, causing excessive recompilation of
> unrelated files. If you are doing processor development I would suggest
> periodically clearing out and re-creating the project and workspace that you
> are doing your processor testing in.
Thanks for the hint. I clean my projects more or less regularly -- but
cleaning is followed by the now very long build (which almost feels like
I'm programming in C++ again and changed a precompiled header...).
> In general best practice is to
> separate processor development from project development. Get your processor
> working on test projects first.
Yes, but our situation is such that the annotations and annotation
processor are changed daily. So if there's an effective way to push the
changes to other people with the SCM system automatically, I'd be very
glad to learn more about it, but until then, we'll have to stick to
using a jar.
Thanks for your help,
J.-P.
|
|
|
Re: Extremely slow APT [message #258292 is a reply to message #258288] |
Mon, 26 January 2009 20:35   |
Eclipse User |
|
|
|
"J.-P. Pellet" <jpp-mac@gmx.net> wrote in message
news:gllhfj$qa0$1@build.eclipse.org...
> -- I don't need to restart my IDE each time I do a successful
> modification;
> -- I don't need to tell everyone working with me that it's now time to go
> get the new version of the annotation processor (which happens almost
> daily), put the plugin into their IDE's plugin folder, and restart the
> IDE. The jar gets pushed by the SCM system and the annotation processors
> are automatically updated.
> [...and, rearranging the original a bit:]
> Yes, but our situation is such that the annotations and annotation
> processor are changed daily. So if there's an effective way to push the
> changes to other people with the SCM system automatically, I'd be very
> glad to learn more about it, but until then, we'll have to stick to using
> a jar.
If you had a local update site for your plugin, then to get the new plugin
your users could just use the update manager. Not quite as easy as SCM, I
agree.
I don't know what to say, other than just to tell you again that even though
you're the author, the annotation processor is in every relevant regard just
a part of the compiler, and what you're doing is no different than plugin
development. It's a crap shoot; if the processor classes happen to get
gc'ed then the UrlClassLoader that loads them can get released and will
unlock the file, and if not, not. If it's working for you, then that's
great, but something here is not working for you and I'm trying to figure
out what.
It would be wonderful if we were able to reliably reload processors on the
fly. One way to do that might be to spin up a new VM for every compilation.
That seems overly expensive. Another way is to write a custom classloader
that keeps the processor bytecode in memory rather than on disk; we actually
went down that path at one point, but ran into some problems (having to do
with the way that some processor classes get resources from their
classloaders) that weren't surmountable in reasonable time. When you change
a processor out from under a running IDE, you are asking the VM to unload
existing classes and reload them; not something that VMs are set up for
(Class objects are candidates to be put into "permgen" space and never
GC'ed, for instance). We didn't want to write an app server just for APT,
and you've already indicated you don't want to use OSGi (ie plugins).
> How can I do this? I can't find eclipsec on my Mac. Should I start Eclipse
> from the command line and hit some key combination?
You're right, it doesn't seem to be there in the Mac version, my apologies.
You can start Eclipse from a console window on the Mac by invoking
../eclipse, at least if you've got the VM and JAVA_HOME pointed to 1.5 (I
guess there's still no 64-bit Eclipse for the Mac, and no 32-bit Java 1.6
for the Mac? Not sure about that).
Then, Ctrl+\ in that console window will spit out a thread dump.
> My annotation processor doesn't generate source files. The "certain files"
> are the Java files which use my custom annotations, or (apparently) other
> Java files which cause those annotated classes to be recompiled (or is
> that reconciled?). This happens when I save them manually from the Java
> Editor, or whenever it is rebuilding the workspace.
Reconcile and build are both flavors of compilation.
Reconcile is what happens every few seconds within the editor - it's what
makes red squiggles show up while you're typing. You can disable APT
processing during reconcile, from the APT settings in the project
preferences. Reconcile does not produce .class files, it just updates the
in-memory typesystem.
Build is what happens when you save. It's a heavier-duty process, more
stuff gets compiled in a build than in a reconcile and the typesystem is
correspondingly more accurate. Sometimes during reconcile, annotation
processors won't be able to get accurate information about types not direcly
referenced by the type being reconciled.
> I have packaged the processor as a plugin, consisting of half a dozen
> classes of between, say, 10 and 400 lines of code. With no other
> dependency. This didn't speed up the compilation. So I'd rule out the
> hidden expensive dependency scenario...
I was talking about dependencies between source and generated files, the
data structures that we maintain to determine what needs to be recompiled
and regenerated when a given source file changes. But if you're not
generating files (and haven't been in previous versions of the processor),
that seems quite unlikely to be the problem.
> OK. Why two rounds for the build?
It's been a while since I thought much about the Java 5 processing
implementation so I'm not sure. In Java 6, there's a final round after all
the processors have run but in Java 5 I think that was done with
RoundListener instead. Are you getting the same
getSpecifiedTypeDeclarations() on both rounds?
> As far as I can tell, restarting the IDE doesn't help at all.
> [...]
> Thanks for the hint. I clean my projects more or less regularly -- but
> cleaning is followed by the now very long build (which almost feels like
> I'm programming in C++ again and changed a precompiled header...).
The fact that your slowdown happens even with a no-op processor and that
restarting the IDE doesn't help suggests that something has gotten screwed
up in the JDT build state, which is persisted across builds and even IDE
sessions. Doing a clean is probably not enough to clear it. I'm suggesting
that you actually delete and reimport or recreate the project.
Obviously this shouldn't be necessary if everything is working smoothly; but
something here is not working smoothly.
The interesting clue here is that a no-op processor still exhibits the
slowdown, but that disabling annotation processing fixes it. If you then
re-enable annotation processing, does it again slow down, or does it work
okay for a while?
Is there anything in the error log? (Sorry if you already answered that.)
Is it possible that the slowdown correlates with an increasing use of
annotations in your project? I think that when annotation processing is
enabled, the compiler (before it even gets to processing) has to scan for
annotations; I wonder whether that scan is bogging down? A couple of thread
dumps may help to answer that question.
|
|
|
Re: Extremely slow APT [message #258333 is a reply to message #258292] |
Tue, 27 January 2009 10:56   |
Eclipse User |
|
|
|
Walter Harley wrote:
> I don't know what to say, other than just to tell you again that even though
> you're the author, the annotation processor is in every relevant regard just
> a part of the compiler, and what you're doing is no different than plugin
> development. It's a crap shoot; if the processor classes happen to get
> gc'ed then the UrlClassLoader that loads them can get released and will
> unlock the file, and if not, not. If it's working for you, then that's
> great, but something here is not working for you and I'm trying to figure
> out what.
OK, good to know. At least I'll have a good suspect if things start
failing. When things stabilize, we'll move to a plugin version (and then
we can also include a few handy quick fixes).
> You're right, it doesn't seem to be there in the Mac version, my apologies.
>
> You can start Eclipse from a console window on the Mac by invoking
> ./eclipse, at least if you've got the VM and JAVA_HOME pointed to 1.5 (I
> guess there's still no 64-bit Eclipse for the Mac, and no 32-bit Java 1.6
> for the Mac? Not sure about that).
>
> Then, Ctrl+\ in that console window will spit out a thread dump.
Thanks for the information. Here's typical stack traces of the two
threads that are most active when compiling takes so long (see end of
message -- and sorry for the long post!). Looks like newReconcileEnv and
newBuildEnv, called by AptCompilationParticipant#processAnnotations,
take a lot of time. I fail to see what would be the problem, though...
> Reconcile and build are both flavors of compilation.
OK, I see. I tried doing the annotation processing only on build and not
on reconcile. I also tried returning an empty list for the supported
annotation in the factory -- no luck, still takes ages to compile.
> The fact that your slowdown happens even with a no-op processor and that
> restarting the IDE doesn't help suggests that something has gotten screwed
> up in the JDT build state, which is persisted across builds and even IDE
> sessions. Doing a clean is probably not enough to clear it. I'm suggesting
> that you actually delete and reimport or recreate the project.
I created a new workspace and imported all projects, copying them into
the new workspace with the Eclipse import wizard. Compilation was slow
immediately.
> Obviously this shouldn't be necessary if everything is working smoothly; but
> something here is not working smoothly.
>
> The interesting clue here is that a no-op processor still exhibits the
> slowdown, but that disabling annotation processing fixes it. If you then
> re-enable annotation processing, does it again slow down, or does it work
> okay for a while?
After re-enabling annotation processing, it is slow immediately.
> Is there anything in the error log? (Sorry if you already answered that.)
Nope. Nothing on the terminal either.
> Is it possible that the slowdown correlates with an increasing use of
> annotations in your project? I think that when annotation processing is
> enabled, the compiler (before it even gets to processing) has to scan for
> annotations; I wonder whether that scan is bogging down? A couple of thread
> dumps may help to answer that question.
It looks like it could be an explanation... But I'm unsure about the
interpretation of the thread dumps, though.
Thanks a lot for your help,
J.-P.
--
"main" prio=6 tid=0x09401540 nid=0xa046c720 runnable
[0xbfffd000..0xbffff158]
at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.anal yseCode(MethodDeclaration.java:87)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.intern alAnalyseCode(TypeDeclaration.java:670)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.analys eCode(TypeDeclaration.java:201)
at
org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExp ression.analyseCode(QualifiedAllocationExpression.java:78)
at
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.analy seCode(FieldDeclaration.java:76)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.intern alAnalyseCode(TypeDeclaration.java:634)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.analys eCode(TypeDeclaration.java:253)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.analyseCode(CompilationUnitDeclaration.java:118)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:749)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.ReconcileEnv.openPipel ine(ReconcileEnv.java:108)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newReconcileEnv(AbstractCompilationEnv.java:97)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.reconc ile(APTDispatchRunnable.java:211)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringReconcile(APTDispatchRunnable.java:159)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. reconcile(AptCompilationParticipant.java:223)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$ 1.run(ReconcileWorkingCopyOperation.java:257)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. notifyParticipants(ReconcileWorkingCopyOperation.java:244)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. executeOperation(ReconcileWorkingCopyOperation.java:94)
at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaMod elOperation.java:709)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperatio n(JavaModelOperation.java:770)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1224)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1185)
at
org.eclipse.jdt.internal.corext.util.JavaModelUtil.reconcile (JavaModelUtil.java:544)
at
org.eclipse.jdt.internal.ui.actions.SelectionConverter.getEl ementAtOffset(SelectionConverter.java:262)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditorBreadcrumb. getCurrentInput(JavaEditorBreadcrumb.java:646)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditorBreadcrumb. setInput(JavaEditorBreadcrumb.java:618)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setBreadcr umbInput(JavaEditor.java:1908)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.selectionC hanged(JavaEditor.java:2168)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EditorSele ctionChangedListener.selectionChanged(JavaEditor.java:297)
at
org.eclipse.jface.text.TextViewer.firePostSelectionChanged(T extViewer.java:2575)
at
org.eclipse.jface.text.TextViewer.firePostSelectionChanged(T extViewer.java:2527)
at org.eclipse.jface.text.TextViewer$5.run(TextViewer.java:2506 )
at org.eclipse.swt.widgets.Display.runTimers(Display.java:3568)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3045)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1
tid=0x094df0a0 nid=0x534eb600 runnable [0xb0b93000..0xb0b94d90]
at java.lang.Object.hashCode(Native Method)
at java.util.HashMap.put(HashMap.java:418)
at
org.eclipse.jdt.internal.compiler.CompilationResult.record(C ompilationResult.java:355)
at
org.eclipse.jdt.internal.compiler.problem.ProblemHandler.rec ord(ProblemHandler.java:191)
at
org.eclipse.jdt.internal.compiler.problem.ProblemHandler.han dle(ProblemHandler.java:162)
at
org.eclipse.jdt.internal.compiler.problem.ProblemHandler.han dle(ProblemHandler.java:179)
at
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.ha ndle(ProblemReporter.java:1830)
at
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.ra wTypeReference(ProblemReporter.java:5802)
at
org.eclipse.jdt.internal.compiler.ast.TypeReference.internal ResolveType(TypeReference.java:157)
at
org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveT ype(TypeReference.java:197)
at
org.eclipse.jdt.internal.compiler.ast.AllocationExpression.r esolveType(AllocationExpression.java:240)
at
org.eclipse.jdt.internal.compiler.ast.Assignment.resolveType (Assignment.java:192)
at
org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Exp ression.java:882)
at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.ja va:101)
at
org.eclipse.jdt.internal.compiler.ast.IfStatement.resolve(If Statement.java:233)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolveStatements(AbstractMethodDeclaration.java:444)
at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.reso lveStatements(MethodDeclaration.java:191)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolve(AbstractMethodDeclaration.java:403)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1096)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1184)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.resolve(CompilationUnitDeclaration.java:535)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:743)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.ReconcileEnv.openPipel ine(ReconcileEnv.java:108)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newReconcileEnv(AbstractCompilationEnv.java:97)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.reconc ile(APTDispatchRunnable.java:211)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringReconcile(APTDispatchRunnable.java:159)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. reconcile(AptCompilationParticipant.java:223)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$ 1.run(ReconcileWorkingCopyOperation.java:257)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. notifyParticipants(ReconcileWorkingCopyOperation.java:244)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. executeOperation(ReconcileWorkingCopyOperation.java:94)
at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaMod elOperation.java:709)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperatio n(JavaModelOperation.java:770)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1224)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:124)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.access$0(JavaReconcilingStrategy.java:108)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y$1.run(JavaReconcilingStrategy.java:89)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:87)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:149)
at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrateg y.reconcile(CompositeReconcilingStrategy.java:86)
at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStr ategy.reconcile(JavaCompositeReconcilingStrategy.java:102)
at
org.eclipse.jface.text.reconciler.MonoReconciler.process(Mon oReconciler.java:77)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$Backgro undThread.run(AbstractReconciler.java:206)
"Worker-8" prio=5 tid=0x0946d8c0 nid=0x5340e800 runnable
[0xb0c95000..0xb0c96d90]
at java.lang.String.toLowerCase(String.java:2296)
at
org.eclipse.core.internal.content.FileSpec.getMappingKeyFor( FileSpec.java:57)
at
org.eclipse.core.internal.content.ContentTypeCatalog.getDire ctlyAssociated(ContentTypeCatalog.java:468)
at
org.eclipse.core.internal.content.ContentTypeCatalog.interna lFindContentTypesFor(ContentTypeCatalog.java:423)
at
org.eclipse.core.internal.content.ContentTypeCatalog.findCon tentTypesFor(ContentTypeCatalog.java:265)
at
org.eclipse.core.internal.content.ContentTypeMatcher.findCon tentTypeFor(ContentTypeMatcher.java:48)
at
org.eclipse.core.internal.resources.ContentDescriptionManage r.getDescriptionFor(ContentDescriptionManager.java:322)
at
org.eclipse.core.internal.resources.File.internalGetCharset( File.java:260)
at org.eclipse.core.internal.resources.File.getCharset(File.jav a:221)
at org.eclipse.core.internal.resources.File.getCharset(File.jav a:208)
at
org.eclipse.jdt.internal.core.CompilationUnit.getContents(Co mpilationUnit.java:629)
at
org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBod ies(Parser.java:8505)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:729)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.BuildEnv.createASTs(Bu ildEnv.java:356)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newBuildEnv(AbstractCompilationEnv.java:111)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.build( APTDispatchRunnable.java:271)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.run(AP TDispatchRunnable.java:217)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1800)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringBuild(APTDispatchRunnable.java:142)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. processAnnotations(AptCompilationParticipant.java:193)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.p rocessAnnotations(AbstractImageBuilder.java:613)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.c ompile(AbstractImageBuilder.java:337)
at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilde r.build(IncrementalImageBuilder.java:130)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDelta s(JavaBuilder.java:265)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(Java Builder.java:193)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildMan ager.java:633)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:170)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildMan ager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:256)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop (BuildManager.java:309)
at
org.eclipse.core.internal.events.BuildManager.build(BuildMan ager.java:341)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBu ildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJ ob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1
tid=0x094df0a0 nid=0x534eb600 runnable [0xb0b94000..0xb0b94d90]
at
org.eclipse.jdt.internal.compiler.codegen.ConstantPool.liter alIndex(ConstantPool.java:312)
at
org.eclipse.jdt.internal.compiler.ClassFile.completeCodeAttr ibuteForProblemMethod(ClassFile.java:4391)
at
org.eclipse.jdt.internal.compiler.ClassFile.addProblemMethod (ClassFile.java:987)
at
org.eclipse.jdt.internal.compiler.ClassFile.createProblemTyp e(ClassFile.java:195)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.genera teCode(TypeDeclaration.java:500)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.genera teCode(TypeDeclaration.java:581)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.generateCode(CompilationUnitDeclaration.java:345)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:755)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.ReconcileEnv.openPipel ine(ReconcileEnv.java:108)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newReconcileEnv(AbstractCompilationEnv.java:97)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.reconc ile(APTDispatchRunnable.java:211)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringReconcile(APTDispatchRunnable.java:159)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. reconcile(AptCompilationParticipant.java:223)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$ 1.run(ReconcileWorkingCopyOperation.java:257)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. notifyParticipants(ReconcileWorkingCopyOperation.java:244)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. executeOperation(ReconcileWorkingCopyOperation.java:94)
at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaMod elOperation.java:709)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperatio n(JavaModelOperation.java:770)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1224)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:124)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.access$0(JavaReconcilingStrategy.java:108)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y$1.run(JavaReconcilingStrategy.java:89)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:87)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:149)
at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrateg y.reconcile(CompositeReconcilingStrategy.java:86)
at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStr ategy.reconcile(JavaCompositeReconcilingStrategy.java:102)
at
org.eclipse.jface.text.reconciler.MonoReconciler.process(Mon oReconciler.java:77)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$Backgro undThread.run(AbstractReconciler.java:206)
"Worker-8" prio=5 tid=0x0946d8c0 nid=0x5340e800 runnable
[0xb0c95000..0xb0c96d90]
at
org.eclipse.jdt.core.compiler.CharOperation.indexOf(CharOper ation.java:2115)
at
org.eclipse.jdt.core.compiler.CharOperation.indexOf(CharOper ation.java:2062)
at
org.eclipse.jdt.core.compiler.CharOperation.replace(CharOper ation.java:3156)
at
org.eclipse.jdt.internal.compiler.problem.DefaultProblemFact ory.getLocalizedMessage(DefaultProblemFactory.java:150)
at
org.eclipse.jdt.internal.compiler.problem.DefaultProblemFact ory.createProblem(DefaultProblemFactory.java:99)
at
org.eclipse.jdt.internal.core.CancelableProblemFactory.creat eProblem(CancelableProblemFactory.java:37)
at
org.eclipse.jdt.internal.compiler.problem.ProblemHandler.cre ateProblem(ProblemHandler.java:91)
at
org.eclipse.jdt.internal.compiler.problem.ProblemHandler.han dle(ProblemHandler.java:135)
at
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.ha ndle(ProblemReporter.java:1808)
at
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.ha ndle(ProblemReporter.java:1871)
at
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.mi ssingOverrideAnnotation(ProblemReporter.java:4862)
at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.reso lveStatements(MethodDeclaration.java:169)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolve(AbstractMethodDeclaration.java:403)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1096)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1184)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.resolve(CompilationUnitDeclaration.java:535)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:743)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.BuildEnv.createASTs(Bu ildEnv.java:356)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newBuildEnv(AbstractCompilationEnv.java:111)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.build( APTDispatchRunnable.java:271)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.run(AP TDispatchRunnable.java:217)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1800)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringBuild(APTDispatchRunnable.java:142)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. processAnnotations(AptCompilationParticipant.java:193)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.p rocessAnnotations(AbstractImageBuilder.java:613)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.c ompile(AbstractImageBuilder.java:337)
at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilde r.build(IncrementalImageBuilder.java:130)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDelta s(JavaBuilder.java:265)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(Java Builder.java:193)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildMan ager.java:633)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:170)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildMan ager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:256)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop (BuildManager.java:309)
at
org.eclipse.core.internal.events.BuildManager.build(BuildMan ager.java:341)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBu ildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJ ob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1
tid=0x094df0a0 nid=0x534eb600 runnable [0xb0b94000..0xb0b94d90]
at
org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocal Variable(BlockScope.java:86)
at org.eclipse.jdt.internal.compiler.ast.Argument.bind(Argument .java:58)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.bindArguments(AbstractMethodDeclaration.java:91)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolve(AbstractMethodDeclaration.java:399)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1096)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1184)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.resolve(CompilationUnitDeclaration.java:535)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:743)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.ReconcileEnv.openPipel ine(ReconcileEnv.java:108)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newReconcileEnv(AbstractCompilationEnv.java:97)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.reconc ile(APTDispatchRunnable.java:211)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringReconcile(APTDispatchRunnable.java:159)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. reconcile(AptCompilationParticipant.java:223)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$ 1.run(ReconcileWorkingCopyOperation.java:257)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. notifyParticipants(ReconcileWorkingCopyOperation.java:244)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. executeOperation(ReconcileWorkingCopyOperation.java:94)
at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaMod elOperation.java:709)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperatio n(JavaModelOperation.java:770)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1224)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:124)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.access$0(JavaReconcilingStrategy.java:108)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y$1.run(JavaReconcilingStrategy.java:89)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:87)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:149)
at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrateg y.reconcile(CompositeReconcilingStrategy.java:86)
at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStr ategy.reconcile(JavaCompositeReconcilingStrategy.java:102)
at
org.eclipse.jface.text.reconciler.MonoReconciler.process(Mon oReconciler.java:77)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$Backgro undThread.run(AbstractReconciler.java:206)
"Worker-8" prio=5 tid=0x0946d8c0 nid=0x5340e800 runnable
[0xb0c96000..0xb0c96d90]
at
org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.erasur e(ArrayBinding.java:138)
at
org.eclipse.jdt.internal.compiler.ast.Expression.computeConv ersion(Expression.java:567)
at
org.eclipse.jdt.internal.compiler.ast.MessageSend.computeCon version(MessageSend.java:121)
at
org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resol ve(LocalDeclaration.java:193)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolveStatements(AbstractMethodDeclaration.java:444)
at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.reso lveStatements(MethodDeclaration.java:191)
at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarat ion.resolve(AbstractMethodDeclaration.java:403)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1096)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolv e(TypeDeclaration.java:1184)
at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclara tion.resolve(CompilationUnitDeclaration.java:535)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:743)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.BuildEnv.createASTs(Bu ildEnv.java:356)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newBuildEnv(AbstractCompilationEnv.java:111)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.build( APTDispatchRunnable.java:271)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.run(AP TDispatchRunnable.java:217)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1800)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringBuild(APTDispatchRunnable.java:142)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. processAnnotations(AptCompilationParticipant.java:193)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.p rocessAnnotations(AbstractImageBuilder.java:613)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.c ompile(AbstractImageBuilder.java:337)
at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilde r.build(IncrementalImageBuilder.java:130)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDelta s(JavaBuilder.java:265)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(Java Builder.java:193)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildMan ager.java:633)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:170)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildMan ager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:256)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop (BuildManager.java:309)
at
org.eclipse.core.internal.events.BuildManager.build(BuildMan ager.java:341)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBu ildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJ ob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1
tid=0x094df0a0 nid=0x534eb600 runnable [0xb0b94000..0xb0b94d90]
at
org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAs CharArray(Util.java:386)
at
org.eclipse.jdt.internal.core.util.Util.getResourceContentsA sCharArray(Util.java:1145)
at
org.eclipse.jdt.internal.core.CompilationUnit.getContents(Co mpilationUnit.java:635)
at
org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBod ies(Parser.java:8505)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:729)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.ReconcileEnv.openPipel ine(ReconcileEnv.java:108)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newReconcileEnv(AbstractCompilationEnv.java:97)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.reconc ile(APTDispatchRunnable.java:211)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringReconcile(APTDispatchRunnable.java:159)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. reconcile(AptCompilationParticipant.java:223)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$ 1.run(ReconcileWorkingCopyOperation.java:257)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. notifyParticipants(ReconcileWorkingCopyOperation.java:244)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation. executeOperation(ReconcileWorkingCopyOperation.java:94)
at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaMod elOperation.java:709)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperatio n(JavaModelOperation.java:770)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(Comp ilationUnit.java:1224)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:124)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.access$0(JavaReconcilingStrategy.java:108)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y$1.run(JavaReconcilingStrategy.java:89)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:87)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrateg y.reconcile(JavaReconcilingStrategy.java:149)
at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrateg y.reconcile(CompositeReconcilingStrategy.java:86)
at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStr ategy.reconcile(JavaCompositeReconcilingStrategy.java:102)
at
org.eclipse.jface.text.reconciler.MonoReconciler.process(Mon oReconciler.java:77)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$Backgro undThread.run(AbstractReconciler.java:206)
"Worker-8" prio=5 tid=0x0946d8c0 nid=0x5340e800 runnable
[0xb0c96000..0xb0c96d90]
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser .java:9236)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser .java:9598)
at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.pars eStatements(MethodDeclaration.java:122)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseM ethods(TypeDeclaration.java:802)
at
org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBod ies(Parser.java:8513)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:729)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.BuildEnv.createASTs(Bu ildEnv.java:356)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newBuildEnv(AbstractCompilationEnv.java:111)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.build( APTDispatchRunnable.java:271)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.run(AP TDispatchRunnable.java:217)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1800)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringBuild(APTDispatchRunnable.java:142)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. processAnnotations(AptCompilationParticipant.java:193)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.p rocessAnnotations(AbstractImageBuilder.java:613)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.c ompile(AbstractImageBuilder.java:337)
at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilde r.build(IncrementalImageBuilder.java:130)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDelta s(JavaBuilder.java:265)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(Java Builder.java:193)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildMan ager.java:633)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:170)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildMan ager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:256)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop (BuildManager.java:309)
at
org.eclipse.core.internal.events.BuildManager.build(BuildMan ager.java:341)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBu ildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJ ob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-8" prio=5 tid=0x0946d8c0 nid=0x5340e800 runnable
[0xb0c96000..0xb0c96d90]
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at
org.eclipse.core.internal.filesystem.local.LocalFile.openInp utStream(LocalFile.java:356)
at
com.ibm.team.filesystem.client.internal.ManagedFileStore.ope nInputStream(ManagedFileStore.java:804)
at
org.eclipse.core.internal.localstore.FileSystemResourceManag er.read(FileSystemResourceManager.java:642)
at org.eclipse.core.internal.resources.File.getContents(File.ja va:298)
at
org.eclipse.jdt.internal.core.util.Util.getResourceContentsA sCharArray(Util.java:1140)
at
org.eclipse.jdt.internal.core.CompilationUnit.getContents(Co mpilationUnit.java:635)
at
org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBod ies(Parser.java:8505)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler. java:729)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:697)
at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(Com pilationUnitResolver.java:474)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java :736)
at
org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv.creat eASTs(BaseProcessorEnv.java:856)
at
org.eclipse.jdt.apt.core.internal.env.BuildEnv.createASTs(Bu ildEnv.java:356)
at
org.eclipse.jdt.apt.core.internal.env.AbstractCompilationEnv .newBuildEnv(AbstractCompilationEnv.java:111)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.build( APTDispatchRunnable.java:271)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.run(AP TDispatchRunnable.java:217)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1800)
at
org.eclipse.jdt.apt.core.internal.APTDispatchRunnable.runAPT DuringBuild(APTDispatchRunnable.java:142)
at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant. processAnnotations(AptCompilationParticipant.java:193)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.p rocessAnnotations(AbstractImageBuilder.java:613)
at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.c ompile(AbstractImageBuilder.java:337)
at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilde r.build(IncrementalImageBuilder.java:130)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDelta s(JavaBuilder.java:265)
at
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(Java Builder.java:193)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildMan ager.java:633)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:170)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildMan ager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(Bui ldManager.java:256)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop (BuildManager.java:309)
at
org.eclipse.core.internal.events.BuildManager.build(BuildMan ager.java:341)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBu ildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJ ob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
|
|
Re: Extremely slow APT [message #258361 is a reply to message #258333] |
Wed, 28 January 2009 11:55   |
Eclipse User |
|
|
|
"J.-P. Pellet" <jpp-mac@gmx.net> wrote in message
news:glnar1$n36$1@build.eclipse.org...
> Thanks for the information. Here's typical stack traces of the two threads
> that are most active when compiling takes so long (see end of message --
> and sorry for the long post!). Looks like newReconcileEnv and newBuildEnv,
> called by AptCompilationParticipant#processAnnotations, take a lot of
> time. I fail to see what would be the problem, though...
I've entered https://bugs.eclipse.org/bugs/show_bug.cgi?id=262791 - you may
want to add yourself as a cc so that you get notified of questions or
changes in bug status.
If you could, please add a comment in that bug report to say roughly how big
your project is, in the following terms:
- about how many files?
- about how many packages?
- about how many of those files contain annotations (not including
@Override or @Deprecated)?
- of the annotated files, what's the average number of lines of code?
- of the annotated files, roughly how many annotations are present?
You don't have to be precise, just ballpark numbers so that we're all on the
same page.
Also, just to be clear: when you took those thread dumps, were there only
Java 5 processors on the factory path, only Java 6 processors, or a mix of
both?
Thanks!
|
|
| |
Re: Extremely slow APT [message #258390 is a reply to message #258364] |
Thu, 29 January 2009 07:55  |
Eclipse User |
|
|
|
>> I've entered https://bugs.eclipse.org/bugs/show_bug.cgi?id=262791 - you
>> may want to add yourself as a cc so that you get notified of questions or
>> changes in bug status.
>
> Also, I've been assuming you're using Eclipse 3.4.1, but can you confirm,
> and update the bug status if that's incorrect?
>
> Thanks.
>
Thanks a lot. Here's the complement I've added to the bug.
More details about the workspace causing the slowdowns:
— Happens on Mac/Carbon and Windows
— About 300 Java files in about 20 packages
— About 20 of these files are annotated with my custom annotations.
Those files are small, 50-100 lines of code, and contain on average
10-15 annotations
We're talking about Java 5 annotation processors only (Eclipse 3.4.1).
Cheers,
J.-P.
|
|
|
Goto Forum:
Current Time: Wed May 07 13:05:48 EDT 2025
Powered by FUDForum. Page generated in 0.05251 seconds
|