From fdb2965d6e5b56d49720806b898e88c645c8d125 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Fri, 25 Mar 2016 16:49:03 +1300 Subject: [PATCH] #622 - Set interrupted status for findFutureList() ... (specifically the FutureList.getUnchecked() methods) --- .../server/autotune/service/DefaultAutoTuneService.java | 2 ++ .../avaje/ebeaninternal/server/query/QueryFutureList.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/com/avaje/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java b/src/main/java/com/avaje/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java index 328393128..9a6ec63b2 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java +++ b/src/main/java/com/avaje/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java @@ -252,6 +252,8 @@ public class DefaultAutoTuneService implements AutoTuneService { } Thread.sleep(waitMillis); } catch (InterruptedException e) { + // restore the interrupted status + Thread.currentThread().interrupt(); logger.warn("Error while sleeping after System.gc() request.", e); } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/QueryFutureList.java b/src/main/java/com/avaje/ebeaninternal/server/query/QueryFutureList.java index 179bf4f46..74779df8c 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/query/QueryFutureList.java +++ b/src/main/java/com/avaje/ebeaninternal/server/query/QueryFutureList.java @@ -47,8 +47,12 @@ public class QueryFutureList extends BaseFuture> implements FutureLis public List getUnchecked() { try { return get(); + } catch (InterruptedException e) { + // restore the interrupted status (so client can check for that) + Thread.currentThread().interrupt(); throw new PersistenceException(e); + } catch (ExecutionException e) { throw new PersistenceException(e); } @@ -58,8 +62,12 @@ public class QueryFutureList extends BaseFuture> implements FutureLis public List getUnchecked(long timeout, TimeUnit unit) throws TimeoutException { try { return get(timeout, unit); + } catch (InterruptedException e) { + // restore the interrupted status (so client can check for that) + Thread.currentThread().interrupt(); throw new PersistenceException(e); + } catch (ExecutionException e) { throw new PersistenceException(e); }