Hi, I have a strange null pointer exception when trying to implement the
Remember Me functionality.
It seems to be a null pointer exception in
org.jboss.seam.core.Selector.setCookieValue(Selector:77). I've looked at the
code and it appears that the response object is null which to me is strange.
Below is the method in Seam that is "causing" the problem.
I'm using Seam 1.2 patched and IceFaces 1.5.3
| /**
| * Set the cookie
| */
| protected void setCookieValue(String value)
| {
| if ( isCookieEnabled() )
| {
| HttpServletResponse response = (HttpServletResponse)
FacesContext.getCurrentInstance().getExternalContext().getResponse();
| Cookie cookie = new Cookie( getCookieName(), value );
| cookie.setMaxAge( getCookieMaxAge() );
| response.addCookie(cookie); /* NPE IS RIGHT HERE */
| }
| }
|
I have no idea why the response would be null at this point in time. My login
works fine and authenticates correctly. Only dumps if I have the remember me
check box selected.
For completeness I'll list the full stack trace here:
| 22:21:11,867 ERROR [[Blocking Servlet]] Servlet.service() for servlet
Blocking Servlet threw exception
| javax.faces.FacesException: Error calling action method of component with
id _id32:_id56
| at
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
| at javax.faces.component.UICommand.broadcast(UICommand.java:106)
| at
javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
| at
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
| at
org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
| at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
| at
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:438)
| at
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:426)
| at
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:279)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
| at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: javax.faces.el.EvaluationException: /login.xhtml @59,93
action="#{identity.login}": java.lang.NullPointerException
| at
com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
| at
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
| ... 29 more
| Caused by: java.lang.NullPointerException
| at org.jboss.seam.core.Selector.setCookieValue(Selector.java:77)
| at
org.jboss.seam.security.Identity.postAuthenticate(Identity.java:284)
| at
org.jboss.seam.security.RuleBasedIdentity.postAuthenticate(RuleBasedIdentity.java:70)
| at org.jboss.seam.security.Identity.authenticate(Identity.java:250)
| at org.jboss.seam.security.Identity.authenticate(Identity.java:242)
| at org.jboss.seam.security.Identity.login(Identity.java:172)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at com.sun.el.parser.AstValue.invoke(AstValue.java:151)
| at
com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
| at
com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
| at
com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
| ... 30 more
|
And here is my login form:
| <h:form>
|
| <div class="dialog">
| <div class="entry">
| <div class="label">
| <h:outputText
value="#{messages['login.name']}" />
| </div>
| <div class="input">
| <h:inputText id="username"
value="#{identity.username}"/>
| </div>
| </div>
| <div class="entry">
| <div class="label">
| <h:outputText
value="#{messages['login.password']}" />
| </div>
| <div class="input">
| <h:inputSecret id="password"
value="#{identity.password}"/>
| </div>
| </div>
| <div class="entry">
| <div class="label">
| <h:outputText value="#{messages['login.rememberMe']}" />
| </div>
| <div class="input">
| <h:selectBooleanCheckbox id="rememberMe"
value="#{identity.rememberMe}"/>
| </div>
| </div>
| <div class="entry">
| <div>
| <h:graphicImage
value="/seam/resource/captcha?#{captcha.id}"/>
| </div>
| <div class="label">
| <h:outputLabel for="verifyCaptcha">Enter the above
letters</h:outputLabel>
| </div>
| <div class="input">
| <h:inputText id="verifyCaptcha"
value="#{captcha.response}" required="true"/>
| </div>
| <div class="errors"><h:message
for="verifyCaptcha"/></div>
| </div>
| </div>
|
| <div class="actionButtons">
| <h:commandButton value="#{messages['login.login']}"
action="#{identity.login}"/>
| </div>
|
| <div class="actionButtons">
| <s:link view="/registerUser.xhtml"
value="#{messages['registerUser.new']}" />
| </div>
|
| </h:form>
|
Any help is greatly appreciated,
PVM
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4025658#4025658
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4025658
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user