Hi Pierre,

I suspect that this is a bug in AspectJ. Did you try with a similar class, unrelated to RIFE that also have anonymous inner classes that are used as templates for general purpose methods? (DbRowProcessor in ListScheduledArticles.java).

I never used AspectJ, so I can't help you any further.

You could try with a recent snapshot of RIFE from:
http://rifers.org/downloads/rife/snapshots/

and edit web.xml to add a 'engineclassloader.enabled' filter init param that is set to 'false'. This will disable RIFE's custom classloader. If you still have problems then, it's most certainly a problem with AspectJ.

Best regards,

Geert

On 6-nov-05, at 18:16, Raoul Pierre wrote:

Hello,

Did anybody try AspectJ with Rife-Crud ?

With JumpStart, everything is fine, but with eCalendar I get exception from AspectJ (see below). It seems the culprit is ListScheduledArticles...

Any idea ?

Pierre

=================================================================
aspect file:
package com.uwyn.ecalendar.aop;

public aspect TestAop {
     pointcut toBeTraced():
call(public static String com.uwyn.ecalendar.ApplicationVersion.getVersion());
     after (): toBeTraced() {
       System.out.println("test aop: toBeTraced after getVersion");
   }

}
=================================================================
AspectJ exception:

java.lang.IllegalStateException
at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith (ResolvedMemberImpl.java:609) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith (ResolvedMemberImpl.java:590) at org.aspectj.weaver.ReferenceType.getDeclaredMethods (ReferenceType.java:380) at org.aspectj.weaver.ResolvedType.addAndRecurse(ResolvedType.java: 252) at org.aspectj.weaver.ResolvedType.addAndRecurse(ResolvedType.java: 291) at org.aspectj.weaver.ResolvedType.getMethodsWithoutIterator (ResolvedType.java:247) at org.aspectj.weaver.ResolvedType.lookupResolvedMember (ResolvedType.java:365) at org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupert ypes(JoinPointSignatureIterator.java:167) at org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupert ypes(JoinPointSignatureIterator.java:188) at org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupert ypes(JoinPointSignatureIterator.java:188) at org.aspectj.weaver.JoinPointSignatureIterator.hasNext (JoinPointSignatureIterator.java:68) at org.aspectj.weaver.patterns.SignaturePattern.matches (SignaturePattern.java:129) at org.aspectj.weaver.patterns.KindedPointcut.matchInternal (KindedPointcut.java:105)
at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:143)
at org.aspectj.weaver.patterns.AndPointcut.matchInternal (AndPointcut.java:55)
at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:143)
at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:64)
at org.aspectj.weaver.Advice.match(Advice.java:109)
at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:97)
at org.aspectj.weaver.bcel.BcelClassWeaver.match (BcelClassWeaver.java:1749) at org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction (BcelClassWeaver.java:1736) at org.aspectj.weaver.bcel.BcelClassWeaver.match (BcelClassWeaver.java:1533) at org.aspectj.weaver.bcel.BcelClassWeaver.match (BcelClassWeaver.java:1359) at org.aspectj.weaver.bcel.BcelClassWeaver.weave (BcelClassWeaver.java:382) at org.aspectj.weaver.bcel.BcelClassWeaver.weave (BcelClassWeaver.java:98)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1478)
at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump (BcelWeaver.java:1443) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify (BcelWeaver.java:1217)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1039)
at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave (AjCompilerAdapter.java:300) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling (AjCompilerAdapter.java:178) at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc $afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2 $f9cc9ca0(CompilerAdapter.aj:70) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile (Compiler.java:367) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilati on(AjBuildManager.java:759) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild (AjBuildManager.java:225) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild (AjBuildManager.java:151) at org.aspectj.ajde.internal.CompilerAdapter.compile (CompilerAdapter.java:122) at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run (AspectJBuildManager.java:191)

trouble in:
public class com.uwyn.ecalendar.elements.ListScheduledArticles extends com.uwyn.rife.engine.Element:
 private com.uwyn.rife.database.Datasource mDatasource
 static Class class$0
 public void <init>():
ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this (line 22) INVOKESPECIAL com.uwyn.rife.engine.Element.<init> ()V constructor-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.<init>())
   |               RETURN
constructor-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.<init>())
 end public void <init>()

public void setDatasource(com.uwyn.rife.database.Datasource) org.aspectj.weaver.MethodDeclarationLineNumber: 25:794
:
method-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.setDatasource (com.uwyn.rife.database.Datasource)) | ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this (line 25) | ALOAD_1 // com.uwyn.rife.database.Datasource datasource | PUTFIELD com.uwyn.ecalendar.elements.ListScheduledArticles.mDatasource Lcom/ uwyn/rife/database/Datasource;
   |               RETURN
method-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.setDatasource (com.uwyn.rife.database.Datasource))
 end public void setDatasource(com.uwyn.rife.database.Datasource)

public void processElement() org.aspectj.weaver.MethodDeclarationLineNumber: 27:877
:
method-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.processElement()) | ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this (line 28)
   |               LDC "pub.scheduled_articles"
| method-call(com.uwyn.rife.template.Template com.uwyn.ecalendar.elements.ListScheduledArticles.getHtmlTemplate (java.lang.String)) | | INVOKEVIRTUAL com.uwyn.ecalendar.elements.ListScheduledArticles.getHtmlTemplate (Ljava/lang/String;)Lcom/uwyn/rife/template/Template; | method-call(com.uwyn.rife.template.Template com.uwyn.ecalendar.elements.ListScheduledArticles.getHtmlTemplate (java.lang.String))
   |               ASTORE_1
   |               NEW java.text.SimpleDateFormat   (line 29)
   |               DUP
   |               LDC "MMMM d"
| INVOKESPECIAL java.text.SimpleDateFormat.<init> (Ljava/lang/String;)V
   |               ASTORE_2
   |               NEW java.text.SimpleDateFormat   (line 30)
   |               DUP
   |               LDC "'Week' w, MMMM d yyyy"
| INVOKESPECIAL java.text.SimpleDateFormat.<init> (Ljava/lang/String;)V
   |               ASTORE_3
   | method-call(java.util.Calendar java.util.Calendar.getInstance())
| | INVOKESTATIC java.util.Calendar.getInstance () Ljava/util/Calendar; (line 32)
   | method-call(java.util.Calendar java.util.Calendar.getInstance())
   |               ASTORE 4
| ALOAD 4 // java.util.Calendar current_week_firstday (line 33)
   |               BIPUSH 7
| ALOAD 4 // java.util.Calendar current_week_firstday
   | method-call(int java.util.Calendar.getFirstDayOfWeek())
| | INVOKEVIRTUAL java.util.Calendar.getFirstDayOfWeek ()I
   | method-call(int java.util.Calendar.getFirstDayOfWeek())
   | method-call(void java.util.Calendar.set(int, int))
   | |             INVOKEVIRTUAL java.util.Calendar.set (II)V
   | method-call(void java.util.Calendar.set(int, int))
| NEW com.uwyn.rife.cmf.dam.ContentQueryManager (line 36)
   |               DUP
| ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this | GETFIELD com.uwyn.ecalendar.elements.ListScheduledArticles.mDatasource Lcom/ uwyn/rife/database/Datasource;
   |               LDC com.uwyn.ecalendar.beans.Article
| INVOKESPECIAL com.uwyn.rife.cmf.dam.ContentQueryManager.<init> (Lcom/uwyn/rife/ database/Datasource;Ljava/lang/Class;)V
   |               ASTORE 5
| ALOAD 5 // com.uwyn.rife.cmf.dam.ContentQueryManager manager (line 37) | ALOAD 5 // com.uwyn.rife.cmf.dam.ContentQueryManager manager (line 38) | method-call (com.uwyn.rife.database.querymanagers.generic.RestoreQuery com.uwyn.rife.cmf.dam.ContentQueryManager.getRestoreQuery()) | | INVOKEVIRTUAL com.uwyn.rife.cmf.dam.ContentQueryManager.getRestoreQuery ()Lcom/ uwyn/rife/database/querymanagers/generic/RestoreQuery; | method-call (com.uwyn.rife.database.querymanagers.generic.RestoreQuery com.uwyn.rife.cmf.dam.ContentQueryManager.getRestoreQuery())
   |               LDC "Publication"
| GETSTATIC com.uwyn.rife.database.queries.Select.ON Lcom/uwyn/rife/database/ queries/Select$JoinCondition;
   |               LDC "publicationId = Publication.id"
| method-call (com.uwyn.rife.database.querymanagers.generic.RestoreQuery com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (java.lang.String, com.uwyn.rife.database.queries.Select $JoinCondition, java.lang.String)) | | INVOKEVIRTUAL com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (Ljava/lang/String;Lcom/uwyn/rife/database/queries/Select $JoinCondition;Ljava/lang/String;)Lcom/uwyn/rife/database/ querymanagers/generic/RestoreQuery; | method-call (com.uwyn.rife.database.querymanagers.generic.RestoreQuery com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (java.lang.String, com.uwyn.rife.database.queries.Select $JoinCondition, java.lang.String))
   |               LDC "Articletype"   (line 39)
| GETSTATIC com.uwyn.rife.database.queries.Select.ON Lcom/uwyn/rife/database/ queries/Select$JoinCondition;
   |               LDC "articletypeId = Articletype.id"
| INVOKEVIRTUAL com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (Ljava/lang/String;Lcom/uwyn/rife/database/queries/Select $JoinCondition;Ljava/lang/String;)Lcom/uwyn/rife/database/ querymanagers/generic/RestoreQuery;
   |               LDC "Author"   (line 40)
| GETSTATIC com.uwyn.rife.database.queries.Select.ON Lcom/uwyn/rife/database/ queries/Select$JoinCondition;
   |               LDC "authorId = Author.id"
| INVOKEVIRTUAL com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (Ljava/lang/String;Lcom/uwyn/rife/database/queries/Select $JoinCondition;Ljava/lang/String;)Lcom/uwyn/rife/database/ querymanagers/generic/RestoreQuery;
   |               LDC "scheduledate"   (line 41)
   |               LDC ">="
| ALOAD 4 // java.util.Calendar current_week_firstday | INVOKEVIRTUAL com.uwyn.rife.database.querymanagers.generic.RestoreQuery.where (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lcom/uwyn/ rife/database/queries/AbstractWhereDelegateQuery; | CHECKCAST com.uwyn.rife.database.querymanagers.generic.RestoreQuery
   |               LDC "scheduledate"   (line 42)
| INVOKEVIRTUAL com.uwyn.rife.database.querymanagers.generic.RestoreQuery.orderBy (Ljava/lang/String;)Lcom/uwyn/rife/database/querymanagers/generic/ RestoreQuery; | NEW com.uwyn.ecalendar.elements.ListScheduledArticles$1
   |               DUP
| ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this | ALOAD_1 // com.uwyn.rife.template.Template template | ALOAD_3 // java.text.SimpleDateFormat week_date_format | ALOAD_2 // java.text.SimpleDateFormat date_format | INVOKESPECIAL com.uwyn.ecalendar.elements.ListScheduledArticles$1.<init> (Lcom/ uwyn/ecalendar/elements/ListScheduledArticles;Lcom/uwyn/rife/ template/Template;Ljava/text/SimpleDateFormat;Ljava/text/ SimpleDateFormat;)V | INVOKEVIRTUAL com.uwyn.rife.cmf.dam.ContentQueryManager.restore (Lcom/uwyn/rife/ database/querymanagers/generic/RestoreQuery;Lcom/uwyn/rife/database/ DbRowProcessor;)Z (line 37)
   |               POP
| ALOAD_0 // com.uwyn.ecalendar.elements.ListScheduledArticles this (line 81) | ALOAD_1 // com.uwyn.rife.template.Template template | INVOKEVIRTUAL com.uwyn.ecalendar.elements.ListScheduledArticles.print (Lcom/uwyn/ rife/template/Template;)V
   |               RETURN   (line 82)
method-execution(void com.uwyn.ecalendar.elements.ListScheduledArticles.processElement())
 end public void processElement()

end public class com.uwyn.ecalendar.elements.ListScheduledArticles

when matching pointcut (call(public static java.lang.String com.uwyn.ecalendar.ApplicationVersion.getVersion()) && persingleton (com.uwyn.ecalendar.aop.TestAop)) when matching shadow method-call (com.uwyn.rife.database.querymanagers.generic.RestoreQuery com.uwyn.rife.database.querymanagers.generic.RestoreQuery.joinInner (java.lang.String, com.uwyn.rife.database.queries.Select $JoinCondition, java.lang.String))
when weaving type com.uwyn.ecalendar.elements.ListScheduledArticles
when weaving classes
when weaving
when batch building BuildConfig[C:\DEV\eclipse\workspace\.metadata \.plugins\org.eclipse.ajdt.core\ecalendar.generated.lst] #Files=22



_______________________________________________
Rife-users mailing list
[email protected]
http://www.uwyn.com/mailman/listinfo/rife-users


--
Geert Bevin                       Uwyn bvba
"Use what you need"               Avenue de Scailmont 34
http://www.uwyn.com               7170 Manage, Belgium
gbevin[remove] at uwyn dot com    Tel +32 64 84 80 03

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://www.uwyn.com/mailman/listinfo/rife-users

Reply via email to