« Return to Thread: State of the AspectJ/Java editor?

Re: State of the AspectJ/Java editor?

by Dave Whittaker :: Rate this Message:

Reply to Author | View in Thread

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@...> 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@...
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@...
> https://dev.eclipse.org/mailman/listinfo/aspectj-users

_______________________________________________
aspectj-users mailing list
aspectj-users@...
https://dev.eclipse.org/mailman/listinfo/aspectj-users

 « Return to Thread: State of the AspectJ/Java editor?