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