Thanks for your help Andy, you are correct about it being null sometimes and
other times not. I was not thinking about how AspectJ would interact with the
actionPerformed method completely. It ends up getting called by in two spots in
my program when I hit my commit button and it does not have an ActionEvent in
one of them. The correct code is:
after(ActionEvent e) : args(e) && execution(void
java.awt.event.ActionListener+.actionPerformed(ActionEvent))
{
if(e != null && e.getActionCommand().equals("Commit"))
System.out.println("Commit clicked");
}
The fix is so simple and I thought it was some complex problem about how
AspectJ worked with my advice and pointcut hehe :)
________________________________________
From: [email protected] [[email protected]] On
Behalf Of Andy Clement [[email protected]]
Sent: Tuesday, June 29, 2010 3:24 PM
To: [email protected]
Subject: Re: [aspectj-users] RE: Aspect for clicking on a JButton
As I say, only 'sometimes' it is null, other times it isn't null and
you get what you expect...
Andy
On 29 June 2010 12:17, Kashtan, Daniel <[email protected]> wrote:
> It must be, but I am confused by how I get the print out of "Commit clicked"
> at all.
> ________________________________________
> From: [email protected] [[email protected]]
> On Behalf Of Andy Clement [[email protected]]
> Sent: Tuesday, June 29, 2010 3:12 PM
> To: [email protected]
> Subject: Re: [aspectj-users] RE: Aspect for clicking on a JButton
>
> I'd suspect that sometimes getActionCommand() is returning null when
> called on the ActionEvent.
>
> Andy
>
> On 29 June 2010 12:00, Kashtan, Daniel <[email protected]> wrote:
>> So I got something almost working. I am not sure whether my pointcut or
>> advice are causing the problem. It works, but I get some weird exception
>> after it works :(
>>
>> after(ActionEvent e) : args(e) && execution(void
>> java.awt.event.ActionListener+.actionPerformed(ActionEvent))
>> {
>> if(e.getActionCommand().equals("Commit"))
>> System.out.println("Commit clicked");
>> }
>>
>> It prints the string only when that specific button is clicked, but then I
>> get some unexpected Exception, and walking through the debugger did not help
>> me find it. It just goes to the Please help if you have any ideas. Here is
>> what my output looks like from the console.
>>
>> Commit clicked
>> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
>> at
>> org.eclipse.equinox.weaving.hello.aspects.HelloAspect.ajc$after$org_eclipse_equinox_weaving_hello_aspects_HelloAspect$4$1bc128eb(HelloAspect.aj:54)
>> at
>> org.eclipse.equinox.weaving.demo.hello.internal.Activator$RawFileControlUICallback.actionPerformed(Activator.java:166)
>> at undo.UndoServiceImp.commit(UndoServiceImp.java:42)
>> at
>> org.eclipse.equinox.weaving.demo.hello.internal.Activator$2.actionPerformed(Activator.java:101)
>> at
>> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
>> at
>> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
>> at
>> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
>> at
>> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
>> at
>> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
>> at java.awt.Component.processMouseEvent(Component.java:6263)
>> at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
>> at java.awt.Component.processEvent(Component.java:6028)
>> at java.awt.Container.processEvent(Container.java:2041)
>> at java.awt.Component.dispatchEventImpl(Component.java:4630)
>> at java.awt.Container.dispatchEventImpl(Container.java:2099)
>> at java.awt.Component.dispatchEvent(Component.java:4460)
>> at
>> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
>> at
>> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
>> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
>> at java.awt.Container.dispatchEventImpl(Container.java:2085)
>> at java.awt.Window.dispatchEventImpl(Window.java:2475)
>> at java.awt.Component.dispatchEvent(Component.java:4460)
>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>> at
>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
>> at
>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
>> at
>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
>> at
>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
>> at
>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
>> at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>> ________________________________________
>> From: [email protected] [[email protected]]
>> On Behalf Of Kashtan, Daniel [[email protected]]
>> Sent: Tuesday, June 29, 2010 11:28 AM
>> To: [email protected]
>> Subject: [aspectj-users] Aspect for clicking on a JButton
>>
>> Hey all,
>>
>> I am having a hard time trying to figure out how to make a pointcut that can
>> trigger when a JButton is clicked. Also, would I be able to target specific
>> buttons being clicked? What can I do?
>>
>> This e-mail and any files transmitted with it may be proprietary and are
>> intended solely for the use of the individual or entity to whom they are
>> addressed. If you have received this e-mail in error please notify the
>> sender.
>> Please note that any views or opinions presented in this e-mail are solely
>> those of the author and do not necessarily represent those of ITT
>> Corporation. The recipient should check this e-mail and any attachments for
>> the presence of viruses. ITT accepts no liability for any damage caused by
>> any virus transmitted by this e-mail.
>> _______________________________________________
>> 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
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users