Hi,

After the user successfully logs in he is redirected to the page where he
came from. The location is written in the shiroSavedRequest cookie. The
redirect works most of the time, but occasionally for some users the below
code throws an exception. I tried bullet-proofing it by setting requestUri
to "index" if the url is empty, but I'm still receiving the exception
("org.eclipse.jetty.http.HttpException: null" - see the full stacktrace
below the code).

Is there something wrong with the code? The requestUri isn't empty - so
what is null?

This is my code (Prijava.java):

        String requestUri = loginContextService.getSuccessPage();
        logger.debug("Redirect to savedUrl {}",redirectToSavedUrl);
        logger.debug("Saved request url
{}",loginContextService.getSuccessPage());
        if (redirectToSavedUrl) {
        if ((requestUri == null) || (requestUri.equals(""))) {
        logger.warn("Request URI = null, setting to index.");
        requestUri = "index";
        }
            if (!requestUri.startsWith("/")) {
                requestUri = "/" + requestUri;
            }
            try {
                loginContextService.redirectToSavedRequest(requestUri); //
line 153
                return null;
            } catch (Exception e){
            logger.warn("Error redirecting to saved request: " + requestUri
+ ": ", e);
            return null;
            }
        }
        else {
        return loginContextService.getSuccessPage();
        }



STACKTRACE:

[00:23:29.214] WARN  [s.n.w.p.Prijava]: Error redirecting to saved request:
/index:
org.eclipse.jetty.http.HttpException: null
        at
org.eclipse.jetty.server.AbstractHttpConnection.completeResponse(AbstractHttpConnection.java:641)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at org.eclipse.jetty.server.Response.complete(Response.java:1242)
~[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.Response.sendRedirect(Response.java:497)
~[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:172)
~[servlet-api-3.0.jar:na]
        at
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:172)
~[servlet-api-3.0.jar:na]
        at
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:172)
~[servlet-api-3.0.jar:na]
        at $HttpServletResponse_10b2274ebf2756.sendRedirect(Unknown Source)
~[na:na]
        at $HttpServletResponse_10b2274ebf1e97.sendRedirect(Unknown Source)
~[na:na]
        at
org.apache.shiro.web.util.RedirectView.sendRedirect(RedirectView.java:300)
~[shiro-web-1.2.0.jar:1.2.0]
        at
org.apache.shiro.web.util.RedirectView.renderMergedOutputModel(RedirectView.java:203)
~[shiro-web-1.2.0.jar:1.2.0]
        at
org.apache.shiro.web.util.WebUtils.issueRedirect(WebUtils.java:525)
~[shiro-web-1.2.0.jar:1.2.0]
        at
org.apache.shiro.web.util.WebUtils.issueRedirect(WebUtils.java:538)
~[shiro-web-1.2.0.jar:1.2.0]
        at
org.tynamo.security.internal.services.impl.LoginContextServiceImpl.redirectToSavedRequest(LoginContextServiceImpl.java:107)
~[tapestry-security-0.5.1.jar:0.5.1]
        at
$LoginContextService_10b2274ebf1e55.redirectToSavedRequest(Unknown Source)
~[na:na]
        at
si.najdi.web.pages.Prijava.onActionFromJsecLoginForm(Prijava.java:153)
[na:na]
        at si.najdi.web.pages.Prijava.dispatchComponentEvent(Prijava.java)
[na:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:932)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1117)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1062)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1059)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
[tapestry-ioc-5.3.7.jar:na]
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
[tapestry-ioc-5.3.7.jar:na]
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
[tapestry-ioc-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1058)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:81)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
[tapestry-core-5.3.7.jar:na]
        at $ComponentEventRequestHandler_10b2274ebf26e8.handle(Unknown
Source) [na:na]
        at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
[tapestry-core-5.3.7.jar:na]
        at $ComponentEventRequestHandler_10b2274ebf26e8.handle(Unknown
Source) [na:na]
        at
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
[tapestry-upload-5.3.7.jar:na]
        at $ComponentEventRequestHandler_10b2274ebf26e8.handle(Unknown
Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule.java:2476)
[tapestry-core-5.3.7.jar:na]
        at $ComponentEventRequestHandler_10b2274ebf26e8.handle(Unknown
Source) [na:na]
        at $ComponentEventRequestHandler_10b2274ebf1eda.handle(Unknown
Source) [na:na]
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
[tapestry-core-5.3.7.jar:na]
        at
$ComponentRequestHandler_10b2274ebf1edc.handleComponentEvent(Unknown
Source) [na:na]
        at
org.tynamo.security.SecurityComponentRequestFilter.handleComponentEvent(SecurityComponentRequestFilter.java:41)
[tapestry-security-0.5.1.jar:0.5.1]
        at
$ComponentRequestFilter_10b2274ebf1ed9.handleComponentEvent(Unknown Source)
[na:na]
        at
$ComponentRequestHandler_10b2274ebf1edc.handleComponentEvent(Unknown
Source) [na:na]
        at
$ComponentRequestHandler_10b2274ebf1ea6.handleComponentEvent(Unknown
Source) [na:na]
        at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
[tapestry-core-5.3.7.jar:na]
        at $Dispatcher_10b2274ebf1ea8.dispatch(Unknown Source) [na:na]
        at $Dispatcher_10b2274ebf1ea2.dispatch(Unknown Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
[tapestry-core-5.3.7.jar:na]
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
[tapestry-core-5.3.7.jar:na]
        at $RequestHandler_10b2274ebf1ea3.service(Unknown Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
[tapestry-core-5.3.7.jar:na]
        at $RequestHandler_10b2274ebf1ea3.service(Unknown Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
[tapestry-core-5.3.7.jar:na]
at $RequestHandler_10b2274ebf1ea3.service(Unknown Source) [na:na]
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
[tapestry-core-5.3.7.jar:na]
        at $RequestHandler_10b2274ebf1ea3.service(Unknown Source) [na:na]
        at $RequestHandler_10b2274ebf1e5e.service(Unknown Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
[tapestry-core-5.3.7.jar:na]
        at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
[tapestry5-jquery-3.3.3.jar:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:56)
[tapestry-security-0.5.1.jar:0.5.1]
        at
org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:54)
[tapestry-security-0.5.1.jar:0.5.1]
        at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
[shiro-core-1.2.0.jar:1.2.0]
        at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
[shiro-core-1.2.0.jar:1.2.0]
        at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:380)
[shiro-core-1.2.0.jar:1.2.0]
        at
org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:54)
[tapestry-security-0.5.1.jar:0.5.1]
        at $HttpServletRequestFilter_10b2274ebf1e5c.service(Unknown Source)
[na:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
[tapestry-upload-5.3.7.jar:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
[tapestry-core-5.3.7.jar:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.tynamo.resteasy.ResteasyRequestFilter.service(ResteasyRequestFilter.java:100)
[tapestry-resteasy-0.3.1.jar:0.3.1]
        at $HttpServletRequestFilter_10b2274ebf1e5a.service(Unknown Source)
[na:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
[tapestry-core-5.3.7.jar:na]
        at $HttpServletRequestFilter_10b2274ebf1e58.service(Unknown Source)
[na:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
[tapestry-core-5.3.7.jar:na]
        at $HttpServletRequestHandler_10b2274ebf1e60.service(Unknown
Source) [na:na]
        at $HttpServletRequestHandler_10b2274ebf1e57.service(Unknown
Source) [na:na]
        at
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
[tapestry-core-5.3.7.jar:na]
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
[jetty-servlet-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
[javamelody-core-1.43.0.jar:1.43.0]
        at
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
[javamelody-core-1.43.0.jar:1.43.0]
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
[jetty-servlet-8.1.9.v20130131.jar:8.1.9.v20130131]
        at com.hazelcast.web.WebFilter.doFilter(WebFilter.java:598)
[hazelcast-wm-2.5.jar:2.5]
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
[jetty-servlet-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
[jetty-servlet-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
[jetty-security-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
[jetty-servlet-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:126)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at org.eclipse.jetty.server.Server.handle(Server.java:368)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
 at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
[jetty-http-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
[jetty-http-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
[jetty-server-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
[jetty-io-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
[jetty-io-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
[jetty-util-8.1.9.v20130131.jar:8.1.9.v20130131]
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
[jetty-util-8.1.9.v20130131.jar:8.1.9.v20130131]
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_03]




Regards,
Lidija

Reply via email to