stephenc commented on a change in pull request #34:
URL: https://github.com/apache/openwebbeans/pull/34#discussion_r632492164
##########
File path:
webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
##########
@@ -593,9 +593,17 @@ protected boolean sessionIsExpiring(HttpSession session)
int maxInactiveInterval = session.getMaxInactiveInterval();
if (maxInactiveInterval > 0)
{
- long inactiveSince =
TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() -
session.getLastAccessedTime());
- if (inactiveSince >= maxInactiveInterval)
+ try
{
+ long inactiveSince =
TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() -
session.getLastAccessedTime());
+ if (inactiveSince >= maxInactiveInterval)
+ {
+ return true;
+ }
+ }
+ catch (IllegalStateException e)
+ {
+ // Jetty will throw an ISE if you attempt to query the last
accessed time of a session that is being invalidated
return true;
Review comment:
I can confirm that:
```java
public class JettyBugWorkaroundWebContextService extends WebContextsService {
public JettyBugWorkaroundWebContextService(WebBeansContext
webBeansContext) {
super(webBeansContext);
}
@Override
protected boolean sessionIsExpiring(HttpSession session) {
try {
return super.sessionIsExpiring(session);
} catch (IllegalStateException e) {
if ("Session not valid".equals(e.getMessage())) {
return true;
}
throw e;
}
}
}
```
coupled with an openwebbeans.properties, e.g.
```
configuration.ordinal=15
org.apache.webbeans.spi.ContextsService=...JettyBugWorkaroundWebContextService
```
Works around the issue and would be trivial to add to the owb-jetty9 module
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]