Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] IllegalStateException: Can't answer binding questions prior to resolving ?

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 <andrew.clement@xxxxxxxxx> 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 <daniel.rampanelli@xxxxxxxxx>:
>> 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 <andrew.clement@xxxxxxxxx> 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 <daniel.rampanelli@xxxxxxxxx>:
>>>> 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
>>>> aspectj-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>>>
>>> _______________________________________________
>>> aspectj-users mailing list
>>> aspectj-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>>
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>


Back to the top