From 3a34bf932422c0e16347729ff94b31f21fa6b860 Mon Sep 17 00:00:00 2001 From: Bartosz Firyn Date: Fri, 10 May 2013 22:29:29 +0200 Subject: [PATCH] Fix illegal state exception when closing application, fixes #97 --- .../main/java/com/github/sarxos/webcam/Webcam.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/webcam-capture/src/main/java/com/github/sarxos/webcam/Webcam.java b/webcam-capture/src/main/java/com/github/sarxos/webcam/Webcam.java index f3f36176..dacd6818 100644 --- a/webcam-capture/src/main/java/com/github/sarxos/webcam/Webcam.java +++ b/webcam-capture/src/main/java/com/github/sarxos/webcam/Webcam.java @@ -247,7 +247,7 @@ public boolean close() { // remove shutdown hook (it's not more necessary) - Runtime.getRuntime().removeShutdownHook(hook); + removeShutdownHook(); // notify listeners @@ -317,8 +317,16 @@ protected void dispose() { } } + removeShutdownHook(); + + LOG.debug("Webcam disposed {}", getName()); + } + + private void removeShutdownHook() { + // hook can be null because there is a possibility that webcam has never // been open and therefore hook was not created + if (hook != null) { try { Runtime.getRuntime().removeShutdownHook(hook); @@ -326,8 +334,6 @@ protected void dispose() { LOG.trace("Shutdown in progress, cannot remove hook"); } } - - LOG.debug("Webcam disposed {}", getName()); } /**