Re: anything wrong?- beginner problem

Jonas Bonér <[email protected]> Sat, 03 May 2003 15:05:12 +0200
Newsgroups gmane.comp.java.aspectwerkz
Message-ID <[email protected]>
Hi Weishan.

Thanks a lot for helping me catch a nasty bug :-) :

it is (in the 0.4 release) not possible to define a pointcut that picks 
out *both* static and member methods; creates errors like the one below.
This has now been fixed and I will commit it to the CVS among with the 
other stuff I am working on soon.

Back to your example: the pointcut selection is *case-sensitive* so you 
have to use "N.*" if you want to advise the NewFile method.
And until the bug is patched, don't mix static and member methods in the 
pointcuts.

Sorry for this.

- Jonas



Zhang Weishan wrote:
> Hi,
>   There is method named NewFile(), and if you use ".*", an error is throwed:
>   C:\aspectwerkz>aspectwerkz -cp test/notepad.jar;lib/commons-collections-2.1.jar
> -Daspectwerkz.definition.file=test/samples.xml -Daspectwerkz.metadata.dir=_metaD
> ata Notepad
> java.lang.Error: should be unreachable
>         at aspectwerkz.MethodComparator.comparePrefixed(MethodComparator.java:14
> 4)
>         at aspectwerkz.MethodComparator.compare(MethodComparator.java:68)
>         at java.util.Arrays.mergeSort(Arrays.java:1237)
>         at java.util.Arrays.mergeSort(Arrays.java:1244)
>         at java.util.Arrays.mergeSort(Arrays.java:1245)
>         at java.util.Arrays.sort(Arrays.java:1185)
>         at java.util.Collections.sort(Collections.java:151)
>         at aspectwerkz.AspectWerkz.createMethodRepository(AspectWerkz.java:437)
>         at aspectwerkz.AspectWerkz.loadMethods(AspectWerkz.java:416)
>         at aspectwerkz.AspectWerkz.initialize(AspectWerkz.java:386)
>         at aspectwerkz.joinpoint.MethodJoinPoint.<init>(MethodJoinPoint.java:62)
> 
>         at aspectwerkz.joinpoint.StaticMethodJoinPoint.<init>(StaticMethodJoinPo
> int.java:48)
>         at Notepad.main(Notepad.java)
> Exception in thread "main"
> 
> Thanks,
> Weishan
> 
> 
> 
> 
> -----Original Message-----
> From: Jonas Bonér [mailto:[email protected]] 
> Sent: Saturday, May 03, 2003 6:43 PM
> To: Zhang Weishan
> Cc: [email protected]
> Subject: Re: [aspectwerkz-developer] anything wrong?- beginner problem
> 
> Hi.
> 
> Which method/methods are you trying to advise?
> 
> When I look at your Notepad.java I can't see any methods named something 
> starting with the letter n. If you want to log all methods in the class 
> use: .*
> 
> - Jonas
> 
> Zhang Weishan wrote:
> 
>>Hello everyone,
>>
>>  I tried to run the simple logging advice with a Notepad example, but I 
>>was in trouble. All the used files, including the xml definition file, 
>>compiled and source logging advice, compiled and source Notepad reside 
>>in one directory named test. I jar the complied logging advice and 
>>Notepad into a notepad.jar.
>>
>>  The logging advice which is almost the same as the original one, the 
>>only difference is that I removed the package declaration to make life 
>>easier.
>>
>>  Here is the xml definition file which resides:
>>
>><aspectwerkz>
>>
>>    <advice name="xmt"
>>
>>        advice="LoggingAdvice"
>>
>>        deploymentModel="perClass"/>
>>
>> 
>>
>>    <aspect class="Notepad">
>>
>>        <pointcut type="method" pattern="n.*">
>>
>>            <advice-ref name="xmt"/>
>>
>>        </pointcut>
>>
>>    </aspect>
>>
>> 
>>
>>  Here is the command I used to invoke the framework.
>>
>>C:\aspectwerkz>aspectwerkz -cp 
>>test/notepad.jar;lib/commons-collections-2.1.jar
>>
>>-Daspectwerkz.definition.file=test/samples.xml 
>>-Daspectwerkz.metadata.dir=_metaD
>>
>>ata Notepad
>>
>> 
>>
>>The notepad runs but there is no logging info displayed in the console. 
>>No matter what the method pattern, for example, set.*, n.*, it simply 
>>did not work.
>>
>> 
>>
>>Thanks,
>>
>>Weishan
>>
>> 
>>
> 
> 
> 


-- 
Jonas
http://freeroller.net/page/jboner





-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf