You're right. I will raise a bug report with all the info as soon as I'm able to create a working example of the problem.
Best regards, Daniel On Mon, Oct 5, 2009 at 5:54 PM, Andy Clement <[email protected]> wrote: > It is best if I can work on these issues with a failing testcase, but > if you can't construct one (I think we've ironed out most of the > simple bugs now so it's only ones with subtle interactions that are > left...) then I'll take a look based on the stack trace. Did you > raise a bug yet? I tend to lose bugs that only get mentioned on the > mailing list... > > cheers, > Andy > > 2009/10/5 Daniel <[email protected]>: >> Hi Andy, >> >> I've tried to put together a simple example as test case for the bug, >> but without success. And unfortunately I'm working on a quite big and >> proprietary project. After many hours spent with my old friend >> (debugger), I kinda figured out that the problem is related in some >> way to the fact that I have classes like this >> >> <snippet> >> public class Entity<T extends Entity<T>> { >> ... >> } >> >> public class Contact extends Entity<Contact> { >> ... >> } >> >> public class EditableControl<T extends Entity<T>> extends Composite { >> ... >> } >> </snippet> >> >> During the debug sessions I've noticed that the TypeVariable that >> leads to the catastrophic error describes itself as "TypeVar T extends >> com.distribute.core.Entity<java.lang.Object>" (but I think it should >> be Entity<T>, or I'm mistaken?). >> >> Does this help in some way? >> Daniel >> >> On Fri, Oct 2, 2009 at 5:54 PM, Andy Clement <[email protected]> >> wrote: >>> Hi Daniel, >>> >>> That is an AspectJ bug - please open it on bugzilla with as much info >>> as you can (details of the generic declarations involved around the >>> point of failure if possible) - and I'll take a look. >>> >>> Andy >>> >>> 2009/10/2 Daniel <[email protected]>: >>>> Hi to everyone, >>>> >>>> I'm experiencing a VERY strange issue in my application. Basically it >>>> is an RCP application enhanced with aspects (through Equinox aspects). >>>> >>>> At some point in development (since it happens during a huge >>>> refactoring, I can't go back to the release version) some really >>>> strange errors have started to appear. >>>> >>>> <log> >>>> abort trouble in: >>>> public abstract class >>>> com.distribute.client.editor.impl.EditableEntitiesBindableControl >>>> extends com.distribute.client.editor.impl.EntitiesBindableControl >>>> implements com.distribute.client.editor.EditableControl: >>>> private boolean _editable >>>> private org.eclipse.swt.widgets.Table _table >>>> private ca.odell.glazedlists.swt.EventTableViewer _tableViewer >>>> [Signature(Lca/odell/glazedlists/swt/EventTableViewer<TT;>;)] >>>> private org.eclipse.swt.widgets.Button _createButton >>>> private org.eclipse.swt.widgets.Button _editButton >>>> private org.eclipse.swt.widgets.Button _removeButton >>>> public void <init>(org.eclipse.swt.widgets.Composite, int): >>>> ALOAD_0 // >>>> Lcom/distribute/client/editor/impl/EditableEntitiesBindableControl; >>>> this (line 48) >>>> ALOAD_1 // Lorg/eclipse/swt/widgets/Composite; >>>> parent >>>> ILOAD_2 // I style >>>> [... continues with the whole class byte-code definition ...] >>>> -- (IllegalStateException) Can't answer binding questions prior to >>>> resolving >>>> Can't answer binding questions prior to resolving >>>> java.lang.IllegalStateException: Can't answer binding questions prior >>>> to resolving >>>> at >>>> org.aspectj.weaver.TypeVariable.canBeBoundTo(TypeVariable.java:184) >>>> at >>>> org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:459) >>>> at >>>> org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:363) >>>> at >>>> org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:513) >>>> at >>>> org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:363) >>>> at >>>> org.aspectj.weaver.TypeVariable.isASubtypeOf(TypeVariable.java:212) >>>> at >>>> org.aspectj.weaver.TypeVariable.canBeBoundTo(TypeVariable.java:193) >>>> at >>>> org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:459) >>>> at >>>> org.aspectj.weaver.JoinPointSignatureIterator.accumulateTypesInBetween(JoinPointSignatureIterator.java:163) >>>> at >>>> org.aspectj.weaver.JoinPointSignatureIterator.addSignaturesUpToFirstDefiningMember(JoinPointSignatureIterator.java:145) >>>> at >>>> org.aspectj.weaver.JoinPointSignatureIterator.<init>(JoinPointSignatureIterator.java:51) >>>> at >>>> org.aspectj.weaver.MemberImpl.getJoinPointSignatures(MemberImpl.java:541) >>>> at >>>> org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:290) >>>> at >>>> org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106) >>>> at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) >>>> at >>>> org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52) >>>> at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) >>>> at >>>> org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52) >>>> at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) >>>> at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:79) >>>> at org.aspectj.weaver.Advice.match(Advice.java:112) >>>> at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:145) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:3025) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction(BcelClassWeaver.java:2984) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2706) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2492) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:480) >>>> at >>>> org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:103) >>>> at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1735) >>>> at >>>> org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1696) >>>> at >>>> org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1458) >>>> at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1272) >>>> at >>>> org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:423) >>>> at >>>> org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:286) >>>> at >>>> org.eclipse.equinox.weaving.aspectj.loadtime.OSGiWeavingAdaptor.weaveClass(OSGiWeavingAdaptor.java:121) >>>> at >>>> org.eclipse.equinox.weaving.aspectj.WeavingService.preProcess(WeavingService.java:151) >>>> at >>>> org.eclipse.equinox.weaving.adaptors.AspectJAdaptor.weaveClass(AspectJAdaptor.java:245) >>>> at >>>> org.eclipse.equinox.weaving.hooks.AspectJHook.processClass(AspectJHook.java:126) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:571) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445) >>>> at >>>> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:376) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:452) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393) >>>> at >>>> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251) >>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) >>>> at java.lang.ClassLoader.defineClass1(Native Method) >>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:675) >>>> at >>>> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465) >>>> at >>>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445) >>>> at >>>> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:376) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:452) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405) >>>> at >>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393) >>>> at >>>> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251) >>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) >>>> at java.lang.Class.getDeclaredFields0(Native Method) >>>> at java.lang.Class.privateGetDeclaredFields(Class.java:2259) >>>> at java.lang.Class.getDeclaredFields(Class.java:1715) >>>> at >>>> com.distribute.client.editor.EditorContext.bind(EditorContext.java:109) >>>> at >>>> com.distribute.client.editor.EditorContext.bind(EditorContext.java:102) >>>> at >>>> com.distribute.client.editor.EditorWindow.createContents(EditorWindow.java:110) >>>> at org.eclipse.jface.window.Window.create(Window.java:431) >>>> at org.eclipse.jface.window.Window.open(Window.java:790) >>>> at >>>> com.distribute.client.editor.impl.customer.CustomerEditorAdapter.edit(CustomerEditorAdapter.java:21) >>>> at >>>> com.distribute.client.editor.impl.customer.CustomerEditorAdapter.edit(CustomerEditorAdapter.java:1) >>>> at >>>> com.distribute.client.views.browser.DAOTable$4.widgetSelected(DAOTable.java:125) >>>> at >>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228) >>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) >>>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3542) >>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1247) >>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1270) >>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1255) >>>> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1076) >>>> at >>>> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3440) >>>> at >>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3099) >>>> at >>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) >>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) >>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) >>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) >>>> at >>>> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) >>>> at >>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) >>>> at >>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) >>>> at com.distribute.client.Application.start(Application.java:24) >>>> at >>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) >>>> 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(EclipseStarter.java:368) >>>> at >>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:592) >>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) >>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) >>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1311) >>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1287) >>>> </log> >>>> >>>> I've absolutely no clue what is going on and the most strange part is, >>>> that the application was working before. The only thing that I have >>>> figured out, is that these errors happen when some specific classes >>>> are loaded/used/referenced. >>>> >>>> Thank you in advance, >>>> Daniel >>>> _______________________________________________ >>>> aspectj-users mailing list >>>> [email protected] >>>> https://dev.eclipse.org/mailman/listinfo/aspectj-users >>>> >>> _______________________________________________ >>> aspectj-users mailing list >>> [email protected] >>> https://dev.eclipse.org/mailman/listinfo/aspectj-users >>> >> _______________________________________________ >> aspectj-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
