Re: [aspectwerkz-user] help with aspect not weaved

Alexandre Vasseur <[email protected]> Thu, 23 Jun 2005 16:33:14 +0200
Newsgroups gmane.comp.java.aspectwerkz.user
Message-ID <[email protected]>
Great !
I actually got screwed my self for some ours by this XML one so it is
fixed in the CVS hence will be checked in the next versions.
Alex

On 6/23/05, [email protected] <[email protected]> wrote:
> Hi,
> 
> Tracing helped, but it took a while :( The error in that trace that led me to the source cause of the problem was a "Class not found" thrown from org.objectweb.asm.ClassReader. Because I get so many of those and, as you explained at some point, they can be safely ignored, I didn't pay much attention.
> 
> However, it turned out it wasn't able to load the aspect class itself simply because it wasn't specified in the XML.  I had:
> 
> <aspect name="test.com.ubs.firc.support.aspect.GenericMethodDecorator"
>      deployment-model="perInstance">
> 
> instead of
> 
> <aspect class="test.com.ubs.firc.support.aspect.GenericMethodDecorator"
>    deployment-model="perInstance">
> 
> as you can see below ;)
> 
> Anyway, very stupid mistake, but I had to go from line to line in the callstack of the exception to figure it out. I would suggest to add more explicit and user-friendly config file validation for the next release (like "class attribute is mandatory for aspect tag" ;).
> 
> I have some more problems now, but I'll see if I can sort them out by myself first...
> 
> Thanks a lot!
> Boris
> 
> |-----Original Message-----
> |From: Alexandre Vasseur [mailto:[email protected]]
> |Sent: Thursday, June 23, 2005 3:38 AM
> |To: [email protected]
> |Subject: Re: [aspectwerkz-user] help with aspect not weaved
> |
> |
> |HI
> |The following may help (I assume you are using 2.0)
> |
> |Use -Daspectwerkz.transform.details=true
> |to see if the pointcut captures what it should.
> |
> |Use -Daspectwerkz.transform.verbose=true (or -verbose:class) to see
> |when the ejbPrioEJBHelper class gets weaved and loaded (I am assuming
> |you are using load time weaving).
> |
> |I don' t understand what you mean by
> |"all Aspects.aspectOf methods throw an exception saying that
> |no aspect is found"
> |Could you provide more details ?
> |
> |Also I see you are using "perInstance" with a call pointcut. I would
> |say this is a flaw that we unfortunately provide. You should consider
> |using a perTarget(...some pointcut....) where some pointcut captures
> |the creation of the ejbPrionEJBHelper instances.
> |perInstance is likely to be perInstance from the caller point of view
> |and you seem to wish the callee in this case.
> |
> |Alex
> |
> |
> |On 6/22/05, [email protected]
> |<[email protected]> wrote:
> |> Hi,
> |>
> |> I have the following aspect:
> |>
> |>     <aspect
> |name="test.com.ubs.firc.support.aspect.GenericMethodDecorator"
> |deployment-model="perInstance">
> |>       <pointcut name="helper" expression="call(*
> |com.ubs.firc.credit..ejbPrionEJBHelper.*(..))"/>
> |>       <advice name="decorate" type="around" bind-to="helper"/>
> |>     </aspect>
> |>
> |> in my aop.xml. Basically, I want to put an around advice
> |around all methods of the class 'ejbPrionEJBHelper'. The
> |aspect is not applied as all Aspects.aspectOf methods throw an
> |exception saying that no aspect is found. I put the verbose
> |mode to trace all AspectWerkz activity, and I see things like
> |this in the console:
> |>
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:com.ubs.firc.
> |credit.jrisk2003_2.external.valuation.ExternalValuationDebug[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.OperatingSystem[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.MiscUtilities[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.io.VFSManager[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.JARClassLoader[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.io.VFS[main]
> |>
> |sun.misc.Launcher$AppClassLoader@1813fac@25247660:org.gjt.sp.je
> |dit.io.FileVFS[main]
> |>
> |> etc...
> |>
> |> However, there's no trace of loading of my class of interest
> |'ejbPrionEJBHelper'. Does that mean that AspectWerkz simply
> |never intersepts the loading of that class (I'm sure it
> |eventually gets loaded because I instantiated it)?  I also
> |tried putting the full package name instead of the '..'
> |construct. This is not running in an EJB container, nevermind
> |the name of ejbPrionEJBHelper - it's a simple helper class
> |that doesn't use J2EE API.
> |>
> |> Any idea how I could debug this problem?
> |>
> |> Thanks,
> |> Boris
> |>
> |> Visit our website at http://www.ubs.com
> |>
> |> This message contains confidential information and is intended only
> |> for the individual named.  If you are not the named addressee you
> |> should not disseminate, distribute or copy this e-mail.  Please
> |> notify the sender immediately by e-mail if you have received this
> |> e-mail by mistake and delete this e-mail from your system.
> |>
> |> E-mail transmission cannot be guaranteed to be secure or error-free
> |> as information could be intercepted, corrupted, lost, destroyed,
> |> arrive late or incomplete, or contain viruses.  The sender therefore
> |> does not accept liability for any errors or omissions in the contents
> |> of this message which arise as a result of e-mail transmission.  If
> |> verification is required please request a hard-copy version.  This
> |> message is provided for informational purposes and should not be
> |> construed as a solicitation or offer to buy or sell any securities or
> |> related financial instruments.
> |>
> |>
> |
> 
> Visit our website at http://www.ubs.com
> 
> This message contains confidential information and is intended only
> for the individual named.  If you are not the named addressee you
> should not disseminate, distribute or copy this e-mail.  Please
> notify the sender immediately by e-mail if you have received this
> e-mail by mistake and delete this e-mail from your system.
> 
> E-mail transmission cannot be guaranteed to be secure or error-free
> as information could be intercepted, corrupted, lost, destroyed,
> arrive late or incomplete, or contain viruses.  The sender therefore
> does not accept liability for any errors or omissions in the contents
> of this message which arise as a result of e-mail transmission.  If
> verification is required please request a hard-copy version.  This
> message is provided for informational purposes and should not be
> construed as a solicitation or offer to buy or sell any securities or
> related financial instruments.
> 
>