You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/09/03 21:22:13 UTC
svn commit: r439837 -
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java
Author: rajdavies
Date: Sun Sep 3 12:22:12 2006
New Revision: 439837
URL: http://svn.apache.org/viewvc?view=rev&rev=439837
Log:
move setPercentUsage() out of synchronized blocks to prevent a deadlock in the journal
persistence adaptor
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java?view=diff&rev=439837&r1=439836&r2=439837
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java Sun Sep 3 12:22:12 2006
@@ -103,10 +103,12 @@
return;
if(parent!=null)
parent.increaseUsage(value);
+ int percentUsage;
synchronized(usageMutex) {
usage+=value;
- setPercentUsage(caclPercentUsage());
+ percentUsage = caclPercentUsage();
}
+ setPercentUsage(percentUsage);
}
/**
@@ -119,10 +121,12 @@
return;
if(parent!=null)
parent.decreaseUsage(value);
+ int percentUsage;
synchronized(usageMutex) {
usage-=value;
- setPercentUsage(caclPercentUsage());
+ percentUsage = caclPercentUsage();
}
+ setPercentUsage(percentUsage);
}
public boolean isFull() {
@@ -153,10 +157,12 @@
if(percentUsageMinDelta < 0 ) {
throw new IllegalArgumentException("percentUsageMinDelta must be greater or equal to 0");
}
+ int percentUsage;
synchronized (usageMutex) {
this.limit = limit;
- setPercentUsage(caclPercentUsage());
+ percentUsage = caclPercentUsage();
}
+ setPercentUsage(percentUsage);
}
/**
@@ -199,10 +205,12 @@
if(percentUsageMinDelta < 1) {
throw new IllegalArgumentException("percentUsageMinDelta must be greater than 0");
}
+ int percentUsage;
synchronized (usageMutex) {
this.percentUsageMinDelta = percentUsageMinDelta;
- setPercentUsage(caclPercentUsage());
- }
+ percentUsage = caclPercentUsage();
+ }
+ setPercentUsage(percentUsage);
}
public long getUsage() {