Author: dejanb
Date: Thu Nov 12 15:13:36 2009
New Revision: 835412

URL: http://svn.apache.org/viewvc?rev=835412&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQ-2042 - fix for amq persistence 
store

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java?rev=835412&r1=835411&r2=835412&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/amq/AMQPersistenceAdapter.java
 Thu Nov 12 15:13:36 2009
@@ -695,7 +695,13 @@
     }
     
     public Location writeCommand(DataStructure command, boolean 
syncHint,boolean forceSync) throws IOException {
-        return asyncDataManager.write(wireFormat.marshal(command), 
(forceSync||(syncHint && syncOnWrite)));
+       try {
+               return asyncDataManager.write(wireFormat.marshal(command), 
(forceSync||(syncHint && syncOnWrite)));
+       } catch (IOException ioe) {
+               LOG.error("Failed to write command: " + command + ". Reason: " 
+ ioe, ioe);
+               stopBroker();
+               throw ioe;
+        }
     }
 
     private Location writeTraceMessage(String message, boolean sync) throws 
IOException {
@@ -1085,4 +1091,16 @@
                   + ".DisableLocking",
                   "false"));
        }
+       
+    protected void stopBroker() {
+        new Thread() {
+           public void run() {
+                  try {
+                   brokerService.stop();
+               } catch (Exception e) {
+                   LOG.warn("Failure occured while stopping broker", e);
+               }                       
+               }
+       }.start();
+    }
 }


Reply via email to