Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] State of the AspectJ/Java editor?

Bug report:
http://bugs.eclipse.org/282948

I was able to reduce your problem to a very small snippet of code.

I have been doing most of my development on AJDT targeting 3.5 now.
So, the fix will be out for that platform first (probably tomorrow).
If you are working in 3.4, let me know and I will back port sooner
rather than later.

On Wed, Jul 8, 2009 at 7:45 PM, Andrew Eisenberg<andrew@xxxxxxxxxxxx> wrote:
> Thanks for the screenshot, Dave.  I'm able to reproduce.  I'm thinking
> it's a problem with AJDT's use of the parser.
>
> I'll raise a bug for it.
>
> On Wed, Jul 8, 2009 at 5:11 PM, Andrew Eisenberg<andrew@xxxxxxxxxxxx> wrote:
>> I haven't tested this out, but I have a sneaking suspicion that the
>> "execution(public" is a problem here.  I know that we've had problems
>> with that combination before.  I'll try it out tonight to see if I can
>> reproduce.
>>
>> On Wed, Jul 8, 2009 at 3:54 PM, Andy Clement<andrew.clement@xxxxxxxxx> wrote:
>>> Either AJDT passed in an odd signature with a rogue extra ';' or AspectJ
>>> failed to chew on a valid signature correctly.  It'd be great to know what
>>> AJWorldFacade.java:122 passed in...
>>>
>>> You should raise a bug for this.
>>>
>>> Andy.
>>>
>>> 2009/7/8 Dave Whittaker <dave@xxxxxxxxxx>
>>>>
>>>> Thanks Andrew.  That helps me get a bit of a handle on where things stand.
>>>>  I guess the most baffling one for me right now is an aspect I have that
>>>> does involve an ITD, but doesn't involve generics.   Here is a screen shot
>>>> of what it looks like:
>>>>
>>>> http://files.getdropbox.com/u/1242708/screenshot.png
>>>>
>>>> The file compiles and the pointcut matches correctly , but the AspectJ
>>>> editor still insists that there are issues.  I am getting some AJ related
>>>> messages in the log, which I'll include below.  Any ideas?
>>>>
>>>> org.aspectj.weaver.BCException: Bad type signature: ;
>>>>
>>>>        at
>>>> org.aspectj.weaver.UnresolvedType.signatureToName(UnresolvedType.java:711)
>>>>        at
>>>> org.aspectj.weaver.UnresolvedType.signatureToName(UnresolvedType.java:678)
>>>>        at
>>>> org.aspectj.weaver.UnresolvedType.getName(UnresolvedType.java:457)
>>>>        at
>>>> org.aspectj.weaver.bcel.ClassPathManager.find(ClassPathManager.java:97)
>>>>        at
>>>> org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(BcelWorld.java:391)
>>>>        at
>>>> org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:362)
>>>>        at org.aspectj.weaver.World.resolveToReferenceType(World.java:384)
>>>>        at org.aspectj.weaver.World.resolve(World.java:278)
>>>>        at org.aspectj.weaver.World.getCoreType(World.java:502)
>>>>        at
>>>> org.eclipse.ajdt.core.model.AJWorldFacade.findITDInfoIfExists(AJWorldFacade.java:122)
>>>>        at
>>>> org.eclipse.ajdt.internal.core.contentassist.ProposalRequestorWrapper.shouldAccept(ProposalRequ
>>>> estorWrapper.java:86)
>>>>        at
>>>> org.eclipse.ajdt.internal.core.contentassist.ProposalRequestorWrapper.accept(ProposalRequestorW
>>>> rapper.java:68)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.findLocalMethods(CompletionEngine.java:835
>>>> 4)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.findMethods(CompletionEngine.java:9632)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.findMembers(CompletionEngine.java:8951)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.completionOnQualifiedNameReference(Complet
>>>> ionEngine.java:3014)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:1642)
>>>>        at
>>>> org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:1862)
>>>>        at
>>>> org.eclipse.ajdt.core.javaelements.AJCompilationUnit.internalCodeComplete(AJCompilationUnit.jav
>>>> a:688)
>>>>        at
>>>> org.eclipse.ajdt.core.javaelements.AJCompilationUnit.codeComplete(AJCompilationUnit.java:637)
>>>>        at
>>>> org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:355)
>>>>        at
>>>> org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:343)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.internalComputeCompletionP
>>>> roposals(JavaCompletionProposalComputer.java:242)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.computeCompletionProposals
>>>> (JavaCompletionProposalComputer.java:204)
>>>>        at
>>>> org.eclipse.mylyn.internal.java.ui.editor.FocusedJavaAllProposalComputer.computeCompletionPropo
>>>> sals(FocusedJavaAllProposalComputer.java:72)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionPro
>>>> posals(CompletionProposalComputerDescriptor.java:316)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(Com
>>>> pletionProposalCategory.java:264)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProc
>>>> essor.java:286)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(Content
>>>> AssistProcessor.java:246)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssista
>>>> nt.java:1832)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposa
>>>> lPopup.java:556)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.
>>>> java:553)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java
>>>> :488)
>>>>        at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPo
>>>> pup.java:482)
>>>>        at
>>>> org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.
>>>> java:1660)
>>>>        at
>>>> org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(Co
>>>> mpilationUnitEditor.java:182)
>>>>        at
>>>> org.eclipse.ajdt.internal.ui.editor.AspectJEditor$AJTextOperationTarget.doOperation(AspectJEdit
>>>> or.java:168)
>>>>        at
>>>> org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)
>>>>        at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
>>>>        at
>>>> org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)
>>>>        at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
>>>>        at
>>>> org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
>>>>        at
>>>> org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
>>>>        at
>>>> org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
>>>>        at
>>>> org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
>>>>        at
>>>> org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java
>>>> :569)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
>>>>        at
>>>> org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java
>>>> :125)
>>>>        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>>>>        at org.eclipse.swt.widgets.Display.filterEvent(Display.java:965)
>>>>        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3541)
>>>>        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.sendKeyEvent(Widget.java:1284)
>>>>        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1280)
>>>>        at org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:428)
>>>>        at
>>>> org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:906)
>>>>        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4740)
>>>>        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
>>>>        at
>>>> org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:56)
>>>>        at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:516)
>>>>        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4654)
>>>>        at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native
>>>> Method)
>>>>        at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:202)
>>>>        at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1750)
>>>>        at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:1821)
>>>>        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4712)
>>>>        at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native
>>>> Method)
>>>>        at
>>>> org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4284)
>>>>        at
>>>> org.eclipse.swt.widgets.Display.applicationProc(Display.java:4351)
>>>>        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
>>>>        at
>>>> org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:101)
>>>>        at
>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3096)
>>>>        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
>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
>>>>        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:585)
>>>>        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)
>>>> !SUBENTRY 1 org.eclipse.ajdt.core 4 0 2009-07-07 12:02:30.942
>>>> !MESSAGE
>>>> org.eclipse.ajdt.core.model.AJWorldFacade.findITDInfoIfExists(AJWorldFacade.java:123)
>>>> !SUBENTRY 1 org.eclipse.ajdt.core 1 1 2009-07-07 12:02:30.942
>>>> !MESSAGE org.eclipse.ajdt.core.model.AJWorldFacade@a358b4
>>>> !SUBENTRY 2 org.eclipse.ajdt.core 1 0 2009-07-07 12:02:30.942
>>>> !MESSAGE manager=class
>>>> org.aspectj.ajdt.internal.core.builder.AjBuildManager@10370600
>>>> !SUBENTRY 2 org.eclipse.ajdt.core 1 0 2009-07-07 12:02:30.942
>>>> !MESSAGE world=class org.aspectj.weaver.bcel.BcelWorld@10170238
>>>> !SUBENTRY 2 org.eclipse.ajdt.core 1 0 2009-07-07 12:02:30.942
>>>> !MESSAGE cachedMungers=class java.util.HashMap@16713261
>>>>
>>>> On Jul 7, 2009, at 5:53 PM, Andrew Eisenberg wrote:
>>>>
>>>>> Hi David,
>>>>>
>>>>> Our goal is to ensure that spurious AspectJ errors (ie- red squiggles
>>>>> on valid code) are not seen at all (but this has to be weighed against
>>>>> being to aggressive and ignoring actual errors).  We have taken care
>>>>> to ensure that the common uses of AspectJ syntax will not show red
>>>>> squiggles in the editor, but more advanced uses of aspectj (such as
>>>>> generic ITDs, especially those on interfaces) have been less well
>>>>> tested.
>>>>>
>>>>> There is no explicit documentation that describes what is working and
>>>>> what is not, but there are a slew of test cases for this and the code
>>>>> for this is well documented.  At this point, if you are seeing
>>>>> something in the editor being marked as a problem when the compiler
>>>>> thinks it isn't, please let us know and we will address it as soon as
>>>>> we can.
>>>>>
>>>>> For the past little while, we have been waiting to hear from users
>>>>> when they come across some of these spurious errors.  And we fix them
>>>>> as they come in.  The best way to help me debug this is to send some
>>>>> examples of failing code.  You can raise a bug if you like, or you can
>>>>> send it through this mailing list.
>>>>>
>>>>> --a
>>>>>
>>>>> On Tue, Jul 7, 2009 at 8:53 AM, Dave Whittaker<dave@xxxxxxxxxx> wrote:
>>>>>>
>>>>>> Andrew, I guess this question would be for you: I know that work has
>>>>>> been
>>>>>> done to provide better support for AspectJ inside eclipse editors....
>>>>>> I'm
>>>>>> just not sure what should be working at this point and what isn't yet.
>>>>>>  I
>>>>>> still get a fair number of red squigglies in classes that ITDs are
>>>>>> applied
>>>>>> to, and I've even started to see some of them in pointcuts that are
>>>>>> viewed
>>>>>> inside an AspectJ editor.  If any of these shouldn't be showing up, I'd
>>>>>> like
>>>>>> to help debug the cause, but I don't want to bug you guys by pointing
>>>>>> out
>>>>>> errors that you are already aware of.  Is there a document somewhere
>>>>>> that
>>>>>> lists what should be working and what is known to still be broken?  If
>>>>>> not,
>>>>>> could you give me a quick rundown?
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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