[jboss-cvs] JBossCache/src-50/org/jboss/cache/pojo/interceptors ...
Ben Wang
bwang at jboss.com
Thu Nov 9 11:53:28 EST 2006
User: bwang
Date: 06/11/09 11:53:28
Modified: src-50/org/jboss/cache/pojo/interceptors
MethodReentrancyStopperInterceptor.java
Log:
Added detection for Collection hashCode recursion.
Revision Changes Path
1.2 +21 -3 JBossCache/src-50/org/jboss/cache/pojo/interceptors/MethodReentrancyStopperInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MethodReentrancyStopperInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src-50/org/jboss/cache/pojo/interceptors/MethodReentrancyStopperInterceptor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- MethodReentrancyStopperInterceptor.java 2 Aug 2006 10:28:41 -0000 1.1
+++ MethodReentrancyStopperInterceptor.java 9 Nov 2006 16:53:28 -0000 1.2
@@ -23,7 +23,8 @@
public class MethodReentrancyStopperInterceptor implements Interceptor
{
private final Log log_ = LogFactory.getLog(MethodReentrancyStopperInterceptor.class);
- ThreadLocal<Boolean> done;
+ private ThreadLocal<Boolean> done;
+ private String methodName;
public MethodReentrancyStopperInterceptor()
{
@@ -31,9 +32,14 @@
done.set(false);
}
+ public void setMethodName(String mname)
+ {
+ methodName = mname;
+ }
+
public String getName()
{
- return MethodReentrancyStopperInterceptor.class.getName();
+ return MethodReentrancyStopperInterceptor.class.getName() + "-" +methodName;
}
public Object invoke(Invocation invocation) throws Throwable
@@ -54,7 +60,19 @@
Method method = ((MethodInvocation)invocation).getMethod();
log_.debug("Detect recursive interception. Will call the target directly: " +method.getName());
}
+
+ if(methodName.equals("toString"))
+ {
return invocation.getTargetObject().getClass().getName();
+ } else
+ if(methodName.equals("hashCode"))
+ {
+ return 0;
+ } else
+ {
+ throw new RuntimeException("MethodReentrancyStopperInterceptor.invoke(): unknown method name"
+ +methodName);
+ }
}
}
finally
More information about the jboss-cvs-commits
mailing list