diff options
author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2008-11-11 12:16:00 +0000 |
---|---|---|
committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2008-11-11 12:16:00 +0000 |
commit | e4a47aa9393d74647f4f0c66b54dc4519fed492f (patch) | |
tree | dcacbccfc7b4e777854ee6b9b1c74f84f7fc7915 /smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java | |
parent | 82c59c9d862d3ee9ad43fdc1509d0b5a61cc107c (diff) | |
download | mocca-e4a47aa9393d74647f4f0c66b54dc4519fed492f.tar.gz mocca-e4a47aa9393d74647f4f0c66b54dc4519fed492f.tar.bz2 mocca-e4a47aa9393d74647f4f0c66b54dc4519fed492f.zip |
Interrupt in waitForAction (applet closed)
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@162 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java')
-rw-r--r-- | smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java index f310dd42..04d8d0dd 100644 --- a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java +++ b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/AbstractSMCCSTAL.java @@ -24,6 +24,8 @@ import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,6 +36,7 @@ import at.gv.egiz.stal.InfoboxReadRequest; import at.gv.egiz.stal.STAL; import at.gv.egiz.stal.STALRequest; import at.gv.egiz.stal.STALResponse; +import java.util.Collections; public abstract class AbstractSMCCSTAL implements STAL { private static Log log = LogFactory.getLog(AbstractSMCCSTAL.class); @@ -61,7 +64,7 @@ public abstract class AbstractSMCCSTAL implements STAL { protected abstract BKUGUIFacade getGUI(); - private STALResponse getRespone(STALRequest request) { + private STALResponse getRespone(STALRequest request) throws InterruptedException { log.info("Processing: " + request.getClass()); int retryCounter = 0; while (retryCounter < maxRetries) { @@ -99,6 +102,9 @@ public abstract class AbstractSMCCSTAL implements STAL { log.info("Got null response from handler, assuming quit"); return null; } + } catch (InterruptedException e) { + log.info("Interrupt in handleRequest, do not retry"); + throw e; } catch (Exception e) { log.info("Error while handling STAL request:" + e); if (++retryCounter < maxRetries) { @@ -125,14 +131,22 @@ public abstract class AbstractSMCCSTAL implements STAL { .size()); for (STALRequest request : requestList) { log.info("Processing: " + request.getClass()); - STALResponse response = getRespone(request); - if (response != null) { - responseList.add(response); - if (response instanceof ErrorResponse) { - log.info("Got an error response, don't process remaining requests"); - break; + STALResponse response; + try { + response = getRespone(request); + if (response != null) { + responseList.add(response); + if (response instanceof ErrorResponse) { + log.info("Got an error response, don't process remaining requests"); + break; + } } + } catch (InterruptedException ex) { + log.error("got interrupted, return ErrorResponse 6001"); + responseList = Collections.singletonList((STALResponse) new ErrorResponse(6001)); + break; } + } return responseList; } |