Bug 225785 - VerifyError in AJSourceElementParser.parseTypeMemberDeclarations
Summary: VerifyError in AJSourceElementParser.parseTypeMemberDeclarations
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 1.6.2   Edit
Assignee: AJDT-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-04 13:15 EDT by Wes Isberg CLA
Modified: 2008-08-20 15:11 EDT (History)
3 users (show)

See Also:


Attachments
javap output of old and new (146.24 KB, application/octet-stream)
2008-05-17 16:38 EDT, Andrew Clement CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wes Isberg CLA 2008-04-04 13:15:26 EDT
VerifyError opening AspectJ editor or when building an aspect.  Same result with only declare-warning on method-execution join points (no advice or itd), but no such result without d-e (weaving). Source aspect in plugin project.  No other source/setup info available (sorry).  JDK 1.5, Eclipse 3.3.2, AJDT 1.5.2.200804031719.

---- trace
java.lang.VerifyError: stack shape inconsistent (class: org/eclipse/ajdt/core/parserbridge/AJSourceElementParser method: parseTypeMemberDeclarations(Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ISourceType;Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ICompilationUnit;IIZ)V) at pc: 260
	at java.lang.J9VMInternals.verifyImpl(Native Method)
	at java.lang.J9VMInternals.verify(J9VMInternals.java:63)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:124)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.buildStructure(AJCompilationUnit.java:235)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:229)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.generateInfos(AJCompilationUnit.java:195)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:505)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:249)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:235)
	at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:190)
	at org.eclipse.jdt.internal.core.JavaElement.getSourceElementAt(JavaElement.java:360)
	at org.eclipse.jdt.internal.core.CompilationUnit.getElementAt(CompilationUnit.java:639)
	at org.eclipse.ajdt.core.model.AJProjectModel.createMapForFile(AJProjectModel.java:686)
	at org.eclipse.ajdt.core.model.AJProjectModel.access$10(AJProjectModel.java:578)
	at org.eclipse.ajdt.core.model.AJProjectModel$1.visit(AJProjectModel.java:412)
	at org.eclipse.core.internal.resources.Resource$2.visit(Resource.java:105)
	at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:57)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:81)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:126)
	at org.eclipse.core.internal.resources.Resource.accept(Resource.java:67)
	at org.eclipse.core.internal.resources.Resource.accept(Resource.java:103)
	at org.eclipse.core.internal.resources.Resource.accept(Resource.java:87)
	at org.eclipse.ajdt.core.model.AJProjectModel.createProjectMap(AJProjectModel.java:405)
	at org.eclipse.ajdt.core.model.AJModel$1.run(AJModel.java:195)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1779)
	at org.eclipse.ajdt.core.model.AJModel.createMap(AJModel.java:193)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:238)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:214)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:353)
	at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:494)
	at org.eclipse.core.internal.resources.Project.build(Project.java:75)
	at org.eclipse.ui.actions.BuildAction.invokeOperation(BuildAction.java:194)
	at org.eclipse.ui.actions.WorkspaceAction.execute(WorkspaceAction.java:141)
	at org.eclipse.ui.actions.WorkspaceAction$1.runInWorkspace(WorkspaceAction.java:460)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)


---- configuration
-- features
org.eclipse.ajdt (1.5.2.200804031719) "AspectJ Development Tools"
org.eclipse.ajdt.source (1.5.2.200804031719) "Eclipse AspectJ Development Tools Source Code"
-- plugins
org.aspectj.ajde (1.6.0.20081300000000) "AspectJ" [Active]
org.aspectj.runtime (1.6.0.20081300000000) "AspectJ Runtime" [Resolved]
org.aspectj.weaver (1.6.0.20081300000000) "AspectJ Weaver" [Resolved]
org.eclipse.aspectj (1.5.0.200804031719) "AspectJ Development Tools" [Starting]
-- VM
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pwi32devifx-20070531a (S
R4 + IY99287 + IY99356 + IY98136))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows Server 2003 x86-32 j9vmwi322
3ifx-20070525 (JIT enabled)
J9VM - 20070524_12771_lHdSMR
JIT  - 20070109_1805ifx1_r8
GC   - WASIFIX_2007)
JCL  - 20070131
Comment 1 Andrew Clement CLA 2008-04-04 13:38:52 EDT
Hi Wes - are you able to try a more up to date version of J9?
Comment 2 Sven Schober CLA 2008-05-06 16:14:25 EDT
I'm seeing the same error on ppc/linux-gtk using the latest (think so at least) ibm j9 jvm:

Java(TM) 2 Runtime Environment, Standard Edition (build pxp32dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux ppc-32 j9vmxp3223-20080315 (JIT enabled)
J9VM - 20080314_17962_bHdSMr
JIT  - 20080130_0718ifx2_r8
GC   - 200802_08)
JCL  - 20080314

I'm using AJDT 1.5.3.200805021426.

Please let me know if i can provide any other information.


Here's my trace:

java.lang.VerifyError: stack shape inconsistent (class: 
org/eclipse/ajdt/core/parserbridge/AJSourceElementParser method: parseTypeMemberDeclarations(Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ISourceType;Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ICompilationUnit;IIZ)V) at pc: 260
	at java.lang.J9VMInternals.verifyImpl(Native Method)
	at java.lang.J9VMInternals.verify(J9VMInternals.java:68)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:129)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.buildStructure(AJCompilationUnit.java:235)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:229)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.generateInfos(AJCompilationUnit.java:195)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:505)
	at org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:38)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:780)
	at org.eclipse.jdt.internal.core.CompilationUnit.becomeWorkingCopy(CompilationUnit.java:68)
	at org.eclipse.ajdt.internal.ui.editor.AspectJEditor.doSetInput(AspectJEditor.java:376)
	at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3003)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2451)
	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3021)
	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3048)
	at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:263)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2739)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2651)
	at org.eclipse.ui.internal.WorkbenchPage.access$13(WorkbenchPage.java:2643)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2595)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2590)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2574)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2565)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:299)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:173)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:194)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:175)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:268)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:244)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:316)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$5.open(PackageExplorerPart.java:613)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:857)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Comment 3 Andrew Clement CLA 2008-05-06 18:28:40 EDT
I believe this is a side effect of https://bugs.eclipse.org/bugs/show_bug.cgi?id=229910 .  Because the AspectJ compiler is itself an AspectJ project, it will have been woven by a version of the compiler containing that bug.  To fix this bug I have to rebuild the AspectJ compiler from source using a version of AJDT that does not have the bug in it.  I will get around to this before the end of the week.
Comment 4 Andrew Clement CLA 2008-05-07 19:03:53 EDT
OK, I've hand built an AJDT that includes the fix for 229910, then using that I rebuilt the aspectj compiler, then I put that compiler back into AJDT and have committed it all. 

In short... this should be fixed in the next AJDT dev build that appears later today.
Comment 5 Sven Schober CLA 2008-05-17 08:33:46 EDT
still no avail: using AJDT 1.5.3.200805151929 (otherwise same config as in comment #2)

java.lang.VerifyError: stack shape inconsistent (class: org/eclipse/ajdt/core/parserbridge/AJSourceElementParser method: parseTypeMemberDeclarations(Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ISourceType;Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ICompilationUnit;IIZ)V) at pc: 265
	at java.lang.J9VMInternals.verifyImpl(Native Method)
	at java.lang.J9VMInternals.verify(J9VMInternals.java:68)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:129)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.buildStructure(AJCompilationUnit.java:235)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:229)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.generateInfos(AJCompilationUnit.java:195)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:505)
	at org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:38)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:780)
	at org.eclipse.jdt.internal.core.CompilationUnit.becomeWorkingCopy(CompilationUnit.java:68)
	at org.eclipse.ajdt.internal.ui.editor.AspectJEditor.doSetInput(AspectJEditor.java:376)
	at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3003)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2451)
	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3021)
	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3048)
	at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
	at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:263)
	at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1405)
	at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:939)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:129)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:801)
	at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:129)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Comment 6 Andrew Clement CLA 2008-05-17 16:38:06 EDT
Created attachment 100783 [details]
javap output of old and new

Yuck... I should have paid more attention to the package name, it was an AJDT package and not an AspectJ package.  Although AspectJ is happily now all built correctly it looks like the AJDT build system still uses an ooooold AJDT in order to build itself, and that is the version which gets published on the download page.

This attachment is that class raising the error disassembled.  The broke.txt inside is the class from the build machine, the works.txt is the class from my current ajdt build environment that will be using the latest AspectJ.  There are differences but I need to go through them and see which might give rise to the stack shape problem.

Are you just not using AJDT right now or are you using a Sun VM to run eclipse whilst it is broken under J9?
Comment 7 Andrew Clement CLA 2008-05-17 18:27:18 EDT
As an interim measure, I modified the aspect within AJDT that weaves the failing method - as the method is no longer touched, it *should* not have the inconsistency problem within it.  This change will be in 

1.5.3.200805171714

which should be available from the update site shortly.  At least that should get you going whilst I look to upgrade our build process.
Comment 8 Sven Schober CLA 2008-05-18 15:12:01 EDT
I can't update to 1.5.3.200805171714 because there seem to be missing two dependencies... this is what i get from plugin configuration when manually extracting the zip file:

Plug-in "org.eclipse.contribution.xref.core" version "1.5.0.200805171714" referenced by this feature is missing.

Plug-in "org.eclipse.contribution.xref.ui" version "1.5.0.200805171714" referenced by this feature is missing.
Comment 9 Andrew Clement CLA 2008-05-18 20:02:06 EDT
I've just rebuilt AJDT again and test installed it - it seems OK now.
Comment 10 Sven Schober CLA 2008-05-20 15:08:45 EDT
even with your latest snap 1.5.3.200805181553 i still get the same VerifyError. I'll paste it once again, as i'm not sure if i missed some minor differences at a superficial first glance...

regarding your question from comment #6: I'm currently unable to use AJDT because i'm on ppc arch. and thus stuck with the J9 VM (at least to my knowledge).


java.lang.VerifyError: stack shape inconsistent (class: org/eclipse/ajdt/core/parserbridge/AJSourceElementParser method: parseTypeMemberDeclarations(Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ISourceType;Lorg/aspectj/org/eclipse/jdt/internal/compiler/env/ICompilationUnit;IIZ)V) at pc: 227
	at java.lang.J9VMInternals.verifyImpl(Native Method)
	at java.lang.J9VMInternals.verify(J9VMInternals.java:68)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:129)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.buildStructure(AJCompilationUnit.java:235)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:229)
	at org.eclipse.ajdt.core.javaelements.AJCompilationUnit.generateInfos(AJCompilationUnit.java:195)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:505)
	at org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:38)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:780)
	at org.eclipse.jdt.internal.core.CompilationUnit.becomeWorkingCopy(CompilationUnit.java:68)
	at org.eclipse.ajdt.internal.ui.editor.AspectJEditor.doSetInput(AspectJEditor.java:376)
	at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3003)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2451)
	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3021)
	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3048)
	at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:400)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209)
	at org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:843)
	at org.eclipse.ui.internal.PartStack.access$1(PartStack.java:829)
	at org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:139)
	at org.eclipse.ui.internal.presentations.BasicPartList.gotoSelectedElement(BasicPartList.java:267)
	at org.eclipse.ui.internal.presentations.AbstractTableInformationControl$4.mouseUp(AbstractTableInformationControl.java:308)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:206)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Comment 11 Andrew Clement CLA 2008-05-20 15:35:16 EDT
That is an interesting finding - it suggests the compiler produced invalid bytecode rather than any weaving that had been done on the failing method.  I did notice that the method used JSR instructions which are not produced by modern compilers, I will dig out a verifier and see if it thinks the stack manipulations are OK within that method.
Comment 12 Andrew Clement CLA 2008-05-20 16:47:33 EDT
ok, my verifier can't cope with what is happening in that method so I can't confirm if it is good or bad for definite.  So I've split it into two, extracting a try/finally block from the complex method into a helper method.  The reduction in number of finally blocks will make the generated code for that method a little simpler.  I'm starting to think this is a JVM bug, even moreso now that we don't even weave that method and the verifier still complains.  However, let's see if reducing the complexity of the method will make the VM happier.

I'm sorry this is not so scientific but without the ability to recreate the problem it is quite hard to diagnose...
Comment 13 Andrew Clement CLA 2008-07-29 13:34:47 EDT
reported as still happening with AJDT 1.5.3 so I've changed the code again to try and create something the J9 verifier won't barf on.  should be in next dev build of ajdt for Eclipse 3.3
Comment 14 Andrew Clement CLA 2008-08-20 15:11:37 EDT
new fix variant now available.  Also upgraded build process for AJDT on 1.6.0 so this is unlikely to happen at that level because we aren't using such an old AspectJ to build AJDT.