You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/07/22 13:27:16 UTC
[isis] 01/01: ISIS-2816: ImpersonatedUserHolderForWicket: guards
against RequestCycle not available
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit a2c3cac965641e6ee74421cb1a2a84fef0bd34f3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jul 22 15:26:57 2021 +0200
ISIS-2816: ImpersonatedUserHolderForWicket: guards against RequestCycle
not available
---
.../viewer/services/ImpersonatedUserHolderForWicket.java | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImpersonatedUserHolderForWicket.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImpersonatedUserHolderForWicket.java
index 660758e..0a03dbd 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImpersonatedUserHolderForWicket.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImpersonatedUserHolderForWicket.java
@@ -23,12 +23,15 @@ import java.util.Optional;
import javax.inject.Named;
import org.apache.wicket.Session;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.applib.services.user.ImpersonatedUserHolder;
import org.apache.isis.applib.services.user.UserMemento;
+import lombok.val;
+
/**
* Implementation that supports impersonation, using the Wicket {@link Session}
* to store the value.
@@ -71,7 +74,12 @@ public class ImpersonatedUserHolderForWicket implements ImpersonatedUserHolder {
}
private static Optional<Session> session() {
- return Optional.ofNullable(Session.get());
+ //XXX[ISIS-2816] guards against RequestCycle not available,
+ // when in the process of expiring the Session
+ val requestCycle = RequestCycle.get();
+ return requestCycle != null
+ ? Optional.of(Session.get())
+ : Optional.empty();
}
}