From a01578ad4c93da5b28b76a9ef534394e5dcbb887 Mon Sep 17 00:00:00 2001 From: gtully Date: Tue, 20 Oct 2015 13:02:57 +0100 Subject: [PATCH] fix stop/stop or stop no start NPE on sharedfilelocker --- .../java/org/apache/activemq/store/SharedFileLocker.java | 6 ++++-- .../org/apache/activemq/store/SharedFileLockerTest.java | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/activemq-broker/src/main/java/org/apache/activemq/store/SharedFileLocker.java b/activemq-broker/src/main/java/org/apache/activemq/store/SharedFileLocker.java index 56e7bde4b3..025510bc4d 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/store/SharedFileLocker.java +++ b/activemq-broker/src/main/java/org/apache/activemq/store/SharedFileLocker.java @@ -99,8 +99,10 @@ public class SharedFileLocker extends AbstractLocker { @Override public void doStop(ServiceStopper stopper) throws Exception { - lockFile.unlock(); - lockFile=null; + if (lockFile != null) { + lockFile.unlock(); + lockFile = null; + } } public File getDirectory() { diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java index 0c98b46335..ac8b86eb9b 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java @@ -59,6 +59,13 @@ public class SharedFileLockerTest { } + @Test + public void testStopNoStart() throws Exception { + SharedFileLocker locker1 = new SharedFileLocker(); + locker1.setDirectory(testFolder.getRoot()); + locker1.stop(); + } + @Test public void testLoop() throws Exception { // Increase the number of iterations if you are debugging races