[jboss-cvs] JBossAS SVN: r69498 - in projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop: annotation and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 31 06:43:34 EST 2008
Author: kabir.khan at jboss.com
Date: 2008-01-31 06:43:34 -0500 (Thu, 31 Jan 2008)
New Revision: 69498
Modified:
projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/Advisor.java
projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/AspectManager.java
projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/JoinPointInfo.java
projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java
projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/util/LoggingReentrantReadWriteLock.java
Log:
Modified: projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/Advisor.java 2008-01-31 11:37:39 UTC (rev 69497)
+++ projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/Advisor.java 2008-01-31 11:43:34 UTC (rev 69498)
@@ -124,7 +124,7 @@
}
/** Read/Write lock to be used when lazy creating the collections */
- protected LoggingReentrantReadWriteLock lock = new LoggingReentrantReadWriteLock();
+ protected LoggingReentrantReadWriteLock<Advisor> lock = new LoggingReentrantReadWriteLock<Advisor>(this);
protected Set<AdviceBinding> adviceBindings = new HashSet<AdviceBinding>();
protected volatile ArrayList<InterfaceIntroduction> interfaceIntroductions = UnmodifiableEmptyCollections.EMPTY_ARRAYLIST;
Modified: projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/AspectManager.java 2008-01-31 11:37:39 UTC (rev 69497)
+++ projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/AspectManager.java 2008-01-31 11:43:34 UTC (rev 69498)
@@ -108,7 +108,7 @@
private static final Logger logger = AOPLogger.getLogger(AspectManager.class);
/** Read/Write lock to be used when lazy creating the collections */
- LoggingReentrantReadWriteLock lock = new LoggingReentrantReadWriteLock();
+ LoggingReentrantReadWriteLock<AspectManager> lock = new LoggingReentrantReadWriteLock<AspectManager>(this);
/** Advisors registered with this manager/domain */
protected final WeakHashMap advisors = new WeakHashMap();
Modified: projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/JoinPointInfo.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/JoinPointInfo.java 2008-01-31 11:37:39 UTC (rev 69497)
+++ projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/JoinPointInfo.java 2008-01-31 11:43:34 UTC (rev 69498)
@@ -32,7 +32,7 @@
public abstract class JoinPointInfo implements JoinPointBean
{
- private LoggingReentrantReadWriteLock interceptorChainLock = new LoggingReentrantReadWriteLock();
+ private LoggingReentrantReadWriteLock<JoinPointInfo> interceptorChainLock = new LoggingReentrantReadWriteLock<JoinPointInfo>(this);
private Interceptor[] interceptors;
Modified: projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java 2008-01-31 11:37:39 UTC (rev 69497)
+++ projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java 2008-01-31 11:43:34 UTC (rev 69498)
@@ -48,7 +48,7 @@
private static final String CLASS_ANNOTATION = "CLASS";
/** Read/Write lock to be used when lazy creating the collections */
- protected LoggingReentrantReadWriteLock lock = new LoggingReentrantReadWriteLock();
+ protected LoggingReentrantReadWriteLock<AnnotationRepository> lock = new LoggingReentrantReadWriteLock<AnnotationRepository>(this);
volatile Map annotations = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
volatile Map classAnnotations = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
Modified: projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/util/LoggingReentrantReadWriteLock.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/util/LoggingReentrantReadWriteLock.java 2008-01-31 11:37:39 UTC (rev 69497)
+++ projects/aop/branches/deadlocks/aop/src/main/org/jboss/aop/util/LoggingReentrantReadWriteLock.java 2008-01-31 11:43:34 UTC (rev 69498)
@@ -21,6 +21,7 @@
*/
package org.jboss.aop.util;
+import java.lang.ref.WeakReference;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
@@ -28,11 +29,26 @@
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public class LoggingReentrantReadWriteLock
+public class LoggingReentrantReadWriteLock<T>
{
+ WeakReference<T> target;
ReentrantReadWriteLock delegate = new ReentrantReadWriteLock();
volatile Thread readLockThread;
+ public LoggingReentrantReadWriteLock(T target)
+ {
+ this.target = new WeakReference<T>(target);
+ }
+
+ private T getTarget()
+ {
+ if (target != null)
+ {
+ return target.get();
+ }
+ return null;
+ }
+
public void lockRead()
{
lockOrUnlockRead(true);
@@ -47,7 +63,7 @@
{
if (lock)
{
- System.out.println("+ Want Read Lock " + Thread.currentThread());
+ System.out.println("+ Want Read Lock " + Thread.currentThread() + " for " + getTarget());
delegate.readLock().lock();
readLockThread = Thread.currentThread();
System.out.println("+ Read Locked " + Thread.currentThread());
@@ -75,7 +91,7 @@
if (lock)
{
Thread t = readLockThread;
- System.out.println("+ Want Write Lock " + Thread.currentThread());
+ System.out.println("+ Want Write Lock " + Thread.currentThread() + " for " + getTarget());
if (t != null && t == Thread.currentThread())
{
throw new RuntimeException(Thread.currentThread() + " is already read locked!!!");
More information about the jboss-cvs-commits
mailing list