From activemq-commits-return-3273-apmail-geronimo-activemq-commits-archive=geronimo.apache.org@geronimo.apache.org Sun Sep 03 19:22:36 2006 Return-Path: Delivered-To: apmail-geronimo-activemq-commits-archive@www.apache.org Received: (qmail 25190 invoked from network); 3 Sep 2006 19:22:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 Sep 2006 19:22:34 -0000 Received: (qmail 53344 invoked by uid 500); 3 Sep 2006 19:22:34 -0000 Delivered-To: apmail-geronimo-activemq-commits-archive@geronimo.apache.org Received: (qmail 53333 invoked by uid 500); 3 Sep 2006 19:22:34 -0000 Mailing-List: contact activemq-commits-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-commits@geronimo.apache.org Received: (qmail 53324 invoked by uid 99); 3 Sep 2006 19:22:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2006 12:22:34 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2006 12:22:33 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 6C6B41A981A; Sun, 3 Sep 2006 12:22:13 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r439837 - /incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/memory/UsageManager.java Date: Sun, 03 Sep 2006 19:22:13 -0000 To: activemq-commits@geronimo.apache.org From: rajdavies@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060903192213.6C6B41A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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() {