Details
Description
NullPointerException is generated if user copy/paste of link from one browser (logged in) to another (not logged in).
i got page with user role attributes used.
Stack trace
java.lang.NullPointerException
at java.util.ArrayList.<init>(ArrayList.java:131)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.inRole(SessionDispatcher.java:148)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.access$300(SessionDispatcher.java:29)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$2.isUserInRole(SessionDispatcher.java:98)
at com.icesoft.faces.context.BridgeExternalContext.isUserInRole(BridgeExternalContext.java:224)
at com.icesoft.faces.component.ext.taglib.Util.isEnabledOnUserRole(Util.java:155)
i got page with user role attributes used.
Stack trace
java.lang.NullPointerException
at java.util.ArrayList.<init>(ArrayList.java:131)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.inRole(SessionDispatcher.java:148)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.access$300(SessionDispatcher.java:29)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$2.isUserInRole(SessionDispatcher.java:98)
at com.icesoft.faces.context.BridgeExternalContext.isUserInRole(BridgeExternalContext.java:224)
at com.icesoft.faces.component.ext.taglib.Util.isEnabledOnUserRole(Util.java:155)
This patch stops problems and app is correct redirected to main page.
private boolean inRole(String sessionID, String role) {
{ return true; }> Collection cl = (Collection) activeRequests.get(sessionID);
> if (cl!=null){
Iterator i = new ArrayList(cl).iterator();
while (i.hasNext()) {
try {
HttpServletRequest request = (HttpServletRequest) i.next();
if (request.isUserInRole(role))
} catch (Throwable t)
{ //ignore }}
> }
return false;
}