Question on Interceptor. Getting a Null Pointer!
sushmam Oct 25, 2004 9:55 AMHi,
I'm very new to JBoss-AOP. I've followed the Interceptor example (as given in jboss-3.2.6RC2), in my code. What I need to do, is to calculate the time of execution of a particular method (RubyConnectionManager.getConnection()). I think for that, I need to define point-cuts at the beggining and end of this method, right?
--------------------------------
The Jboss-aop.xml that i've defined is:
<aop> <bind pointcut="execution(public java.sql.Connection com.apple.ist.rubyservice.communication.RubyConnectionManager->getConnection(java.lang.String))"> <interceptor class="com.apple.ist.rubyservice.aspect.RubyServiceInterceptor"/> </bind> </aop>
--------------------------------
Here is the Interceptor code:
public class RubyServiceInterceptor implements Interceptor
{
public String getName() { return this.getClass().getName(); }
public Object invoke(Invocation invocation) throws Throwable
{
try
{
MethodInvocation mi = (MethodInvocation)invocation;
InvocationResponse ir = (InvocationResponse) invocation.invokeNext();
logger.info("Intercept complete!!");
return ir;
}
finally
{
logger.info("---> Leaving TestInterceptor");
}
}
}
--------------------------------
The Stack trace of the null-pointer is:
2004-10-25 19:08:43,082 ERROR [com.apple.ist.rubyservice.server.RubyTxnProcessor] java.lang.NullPointerException
at com.apple.ist.rubyservice.communication.RubyConnectionManager.com$apple$ist$rubyservice$communication$RubyConnectionManager$getConnection$aop(RubyConnectionManager.java)
at com.apple.ist.rubyservice.communication.RubyConnectionManager.getConnection(RubyConnectionManager.java)
at com.apple.ist.rubyservice.communication.RubySession.getConnection(RubySession.java:81)
at com.apple.ist.rubyservice.services.jsql.JsqlExecSqlXmlTxnProcessor.process(JsqlExecSqlXmlTxnProcessor.java:25)
at com.apple.ist.rubyservice.server.RubyTxnProcessor.execute(RubyTxnProcessor.java:43)
at com.apple.ist.rubyservice.server.RubyTxnPoolManager$RubyTxnPoolWorker.run(RubyTxnPoolManager.java:70)
--------------------------------
I'm compiling the code using ANT. here is the ant task:
<javac srcdir="./src/com/apple/ist/rubyservice/aspects"
destdir="${ejb.gen.dir}"
debug="on"
deprecation="on"
optimize="off"
includes="**">
<classpath refid="project.class.path"/>
</javac>
<aopc compilerclasspathref="project.class.path" verbose="true">
<classpath path="${ejb.gen.dir}"/>
<src path="${ejb.gen.dir}"/>
<aoppath path="jboss-aop.xml"/>
</aopc>
--------------------------------
I would be really grateful if someone could help me out with this.
Thanks and Regards,
Sushma.