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.findSignaturesFromSupertypes(JoinPointSignatureIterator.java:167)
at
org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupertypes(JoinPointSignatureIterator.java:188)
at
org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupertypes(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.performCompilation(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