Repository: activemq
Updated Branches:
  refs/heads/master 226222546 -> 4f8d56aaf


https://issues.apache.org/jira/browse/AMQ-5967

Updating temporary limit disk check to take into account space being
used by the temporary store itself


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/4f8d56aa
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/4f8d56aa
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/4f8d56aa

Branch: refs/heads/master
Commit: 4f8d56aaf60f99abe643e79c6c4940a571289a86
Parents: 2262225
Author: Christopher L. Shannon (cshannon) <christopher.l.shan...@gmail.com>
Authored: Mon Sep 14 19:46:57 2015 +0000
Committer: Christopher L. Shannon (cshannon) <christopher.l.shan...@gmail.com>
Committed: Mon Sep 14 19:46:57 2015 +0000

----------------------------------------------------------------------
 .../java/org/apache/activemq/broker/BrokerService.java | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/4f8d56aa/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
----------------------------------------------------------------------
diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java 
b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
index 5c12069..8ad56a7 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
@@ -2023,16 +2023,19 @@ public class BrokerService implements Service {
             }
 
             long storeLimit = usage.getTempUsage().getLimit();
+            long storeCurrent = usage.getTempUsage().getUsage();
             while (tmpDir != null && !tmpDir.isDirectory()) {
                 tmpDir = tmpDir.getParentFile();
             }
             long dirFreeSpace = tmpDir.getUsableSpace();
-            if (storeLimit > dirFreeSpace) {
+            if (storeLimit > (dirFreeSpace + storeCurrent)) {
                 LOG.warn("Temporary Store limit is " + storeLimit / (1024 * 
1024) +
-                        " mb, whilst the temporary data directory: " + 
tmpDirPath +
-                        " only has " + dirFreeSpace / (1024 * 1024) + " mb of 
usable space - resetting to maximum available " +
-                        dirFreeSpace / (1024 * 1024) + " mb.");
-                usage.getTempUsage().setLimit(dirFreeSpace);
+                        " mb (current temporary store usage is " + 
storeCurrent / (1024 * 1024) +
+                        " mb). The temporary data directory: " + 
tmpDir.getAbsolutePath() +
+                        " only has " + dirFreeSpace / (1024 * 1024) +
+                        " mb of usable space - resetting to maximum available 
disk space: " +
+                       (dirFreeSpace + storeCurrent) / (1024 * 1024) + " mb");
+               usage.getTempUsage().setLimit(dirFreeSpace + storeCurrent);
             }
 
             if (isPersistent()) {

Reply via email to