diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java index db28dd4d6db73628de0171880a236c4931ba853e..ee53cbd0ddd3a8d3a98bef3240ea3f2a4185e223 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java @@ -212,7 +212,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> if (isIncompatibleServerException(caught)) { String sessionExpiredMessage = getMessage(Dict.SESSION_EXPIRED_MESSAGE); - handleSessionTerminated(sessionExpiredMessage); + handleSessionTerminated(sessionExpiredMessage, caught); return; } @@ -239,12 +239,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> } if (caught instanceof InvalidSessionException) { - handleSessionTerminated(msg); - // only for tests - if (staticCallbackListener != DEFAULT_CALLBACK_LISTENER) - { - callbackListener.onFailureOf(viewContext, this, msg, caught); - } + handleSessionTerminated(msg, caught); } else { callbackListener.onFailureOf(viewContext, this, msg, caught); @@ -281,7 +276,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> } } - private void handleSessionTerminated(String msg) + private void handleSessionTerminated(String msg, Throwable caught) { if (viewContext.isSimpleOrEmbeddedMode()) { @@ -290,6 +285,11 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> { showSessionTerminated(msg); } + // only for tests + if (staticCallbackListener != DEFAULT_CALLBACK_LISTENER) + { + callbackListener.onFailureOf(viewContext, this, msg, caught); + } } private void showSessionTerminated(String msg)