You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "Joost Schouten (mailing lists)" <jo...@jsportal.com> on 2009/02/07 04:33:09 UTC

Hard to track NPE

Hi,

I'm getting a NPE in tapestries reflected Request after I contributed
a new RequestFilter (LocaleFilter below; see snippet). My pages appear
as expected which leads me to assume it has something to do with the
Request being completed when my code tries to access it (the stack
hints that to). But since debugging is hard and the NPE
non-descriptive I can't figure out what exactly is going on. Does
anyone know why I get this NPE and if so, can we make it more
descriptive than just this descriptionless NPE?

--------------- my code ------------
public static void contributeRequestHandler(
			final OrderedConfiguration<RequestFilter> configuration,
			@InjectService("Utf8Filter") final RequestFilter utf8Filter,
			@InjectService("TransactionFilter") final RequestFilter transactionFilter,
			@InjectService("SecurityFilter") final RequestFilter securityFilter,
			@InjectService("LocaleFilter") final RequestFilter localeFilter) {
    	configuration.add("LocaleFilter", localeFilter);
    	configuration.add("Utf8Filter", utf8Filter);
    	configuration.add("TransactionFilter", transactionFilter);
    	configuration.add("SecurityFilter", securityFilter);
    	
    	
	}

    public RequestFilter buildLocaleFilter(
    		@InjectService("PersistentLocale") final PersistentLocale
persistantLocale,
    		@InjectService("ThreadLocale") final ThreadLocale threadLocale) {
    	
        return new RequestFilter() {

			public boolean service(Request request, Response response,
					RequestHandler handler) throws IOException {
				persistantLocale.set(threadLocale.getLocale());
				return handler.service(request, response);
			}
        	
        };
    }

--------- the exception ---------------

java.lang.NullPointerException
	at $Request_11f4b87384f.getSession($Request_11f4b87384f.java)
	at $Request_11f4b87381c.getSession($Request_11f4b87381c.java)
	at org.apache.tapestry5.internal.services.RestoreDirtySessionObjects.requestDidComplete(RestoreDirtySessionObjects.java:35)
	at org.apache.tapestry5.internal.services.EndOfRequestEventHubImpl.fire(EndOfRequestEventHubImpl.java:40)
	at $EndOfRequestEventHub_11f4b873820.fire($EndOfRequestEventHub_11f4b873820.java)
	at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:762)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:748)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at com.joostschouten.common.http.tapestrybase.services.SecurityFilter.service(SecurityFilter.java:151)
	at $RequestFilter_11f4b87383a.service($RequestFilter_11f4b87383a.java)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at com.joostschouten.common.http.tapestrybase.services.TransactionFilter.service(TransactionFilter.java:48)
	at $RequestFilter_11f4b873839.service($RequestFilter_11f4b873839.java)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at com.joostschouten.common.http.tapestrybase.services.BaseModule$2.service(BaseModule.java:171)
	at $RequestFilter_11f4b873838.service($RequestFilter_11f4b873838.java)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at com.joostschouten.common.http.tapestrybase.services.BaseModule$3.service(BaseModule.java:188)
	at $RequestFilter_11f4b87383b.service($RequestFilter_11f4b87383b.java)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
	at $RequestHandler_11f4b873831.service($RequestHandler_11f4b873831.java)
	at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:193)
	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
	at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
	at $HttpServletRequestFilter_11f4b873830.service($HttpServletRequestFilter_11f4b873830.java)
	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:710)
	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
	at $HttpServletRequestHandler_11f4b87382d.service($HttpServletRequestHandler_11f4b87382d.java)
	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:416)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Hard to track NPE

Posted by Ulrich Stärk <ul...@spielviel.de>.
Also have a look at the other issue I linked mine to. That concerns the 
RequestHandler directly. In the end I think your problem comes down to 
the Session not being available at the time you are trying to access it.

HTH,

Uli

Joost Schouten (mailing lists) schrieb:
> Thanks Uli,
> 
> I'll have a play with this tomorrow. Looks very promising.
> 
> Have a good weekend,
> Joost
> 
> 
> On Sat, Feb 7, 2009 at 6:58 PM, Ulrich Stärk <ul...@spielviel.de> wrote:
>> Damn, hit the wrong key!
>>
>> This might help:
>>
>> https://issues.apache.org/jira/browse/TAP5-456
>>
>> Cheers,
>>
>> Uli
>>
>> Joost Schouten (mailing lists) schrieb:
>>> Hi,
>>>
>>> I'm getting a NPE in tapestries reflected Request after I contributed
>>> a new RequestFilter (LocaleFilter below; see snippet). My pages appear
>>> as expected which leads me to assume it has something to do with the
>>> Request being completed when my code tries to access it (the stack
>>> hints that to). But since debugging is hard and the NPE
>>> non-descriptive I can't figure out what exactly is going on. Does
>>> anyone know why I get this NPE and if so, can we make it more
>>> descriptive than just this descriptionless NPE?
>>>
>>> --------------- my code ------------
>>> public static void contributeRequestHandler(
>>>                        final OrderedConfiguration<RequestFilter>
>>> configuration,
>>>                        @InjectService("Utf8Filter") final RequestFilter
>>> utf8Filter,
>>>                        @InjectService("TransactionFilter") final
>>> RequestFilter transactionFilter,
>>>                        @InjectService("SecurityFilter") final
>>> RequestFilter securityFilter,
>>>                        @InjectService("LocaleFilter") final RequestFilter
>>> localeFilter) {
>>>        configuration.add("LocaleFilter", localeFilter);
>>>        configuration.add("Utf8Filter", utf8Filter);
>>>        configuration.add("TransactionFilter", transactionFilter);
>>>        configuration.add("SecurityFilter", securityFilter);
>>>
>>>
>>>        }
>>>
>>>    public RequestFilter buildLocaleFilter(
>>>                @InjectService("PersistentLocale") final PersistentLocale
>>> persistantLocale,
>>>                @InjectService("ThreadLocale") final ThreadLocale
>>> threadLocale) {
>>>
>>>        return new RequestFilter() {
>>>
>>>                        public boolean service(Request request, Response
>>> response,
>>>                                        RequestHandler handler) throws
>>> IOException {
>>>
>>>  persistantLocale.set(threadLocale.getLocale());
>>>                                return handler.service(request, response);
>>>                        }
>>>
>>>        };
>>>    }
>>>
>>> --------- the exception ---------------
>>>
>>> java.lang.NullPointerException
>>>        at $Request_11f4b87384f.getSession($Request_11f4b87384f.java)
>>>        at $Request_11f4b87381c.getSession($Request_11f4b87381c.java)
>>>        at
>>> org.apache.tapestry5.internal.services.RestoreDirtySessionObjects.requestDidComplete(RestoreDirtySessionObjects.java:35)
>>>        at
>>> org.apache.tapestry5.internal.services.EndOfRequestEventHubImpl.fire(EndOfRequestEventHubImpl.java:40)
>>>        at
>>> $EndOfRequestEventHub_11f4b873820.fire($EndOfRequestEventHub_11f4b873820.java)
>>>        at
>>> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:762)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:748)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> com.joostschouten.common.http.tapestrybase.services.SecurityFilter.service(SecurityFilter.java:151)
>>>        at
>>> $RequestFilter_11f4b87383a.service($RequestFilter_11f4b87383a.java)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> com.joostschouten.common.http.tapestrybase.services.TransactionFilter.service(TransactionFilter.java:48)
>>>        at
>>> $RequestFilter_11f4b873839.service($RequestFilter_11f4b873839.java)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> com.joostschouten.common.http.tapestrybase.services.BaseModule$2.service(BaseModule.java:171)
>>>        at
>>> $RequestFilter_11f4b873838.service($RequestFilter_11f4b873838.java)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> com.joostschouten.common.http.tapestrybase.services.BaseModule$3.service(BaseModule.java:188)
>>>        at
>>> $RequestFilter_11f4b87383b.service($RequestFilter_11f4b87383b.java)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
>>>        at
>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
>>>        at
>>> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>>>        at
>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
>>>        at
>>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>>        at
>>> $RequestHandler_11f4b873831.service($RequestHandler_11f4b873831.java)
>>>        at
>>> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:193)
>>>        at
>>> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
>>>        at
>>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>>        at
>>> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
>>>        at
>>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>>        at
>>> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>>>        at
>>> $HttpServletRequestFilter_11f4b873830.service($HttpServletRequestFilter_11f4b873830.java)
>>>        at
>>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>>        at
>>> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:710)
>>>        at
>>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>>        at
>>> $HttpServletRequestHandler_11f4b87382d.service($HttpServletRequestHandler_11f4b87382d.java)
>>>        at
>>> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
>>>        at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
>>>        at
>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
>>>        at
>>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>        at
>>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>>        at
>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
>>>        at
>>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:416)
>>>        at
>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>>        at
>>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>>        at
>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>>        at org.mortbay.jetty.Server.handle(Server.java:324)
>>>        at
>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>>>        at
>>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826)
>>>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523)
>>>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
>>>        at
>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>>>        at
>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Hard to track NPE

Posted by "Joost Schouten (mailing lists)" <jo...@jsportal.com>.
Thanks Uli,

I'll have a play with this tomorrow. Looks very promising.

Have a good weekend,
Joost


On Sat, Feb 7, 2009 at 6:58 PM, Ulrich Stärk <ul...@spielviel.de> wrote:
> Damn, hit the wrong key!
>
> This might help:
>
> https://issues.apache.org/jira/browse/TAP5-456
>
> Cheers,
>
> Uli
>
> Joost Schouten (mailing lists) schrieb:
>>
>> Hi,
>>
>> I'm getting a NPE in tapestries reflected Request after I contributed
>> a new RequestFilter (LocaleFilter below; see snippet). My pages appear
>> as expected which leads me to assume it has something to do with the
>> Request being completed when my code tries to access it (the stack
>> hints that to). But since debugging is hard and the NPE
>> non-descriptive I can't figure out what exactly is going on. Does
>> anyone know why I get this NPE and if so, can we make it more
>> descriptive than just this descriptionless NPE?
>>
>> --------------- my code ------------
>> public static void contributeRequestHandler(
>>                        final OrderedConfiguration<RequestFilter>
>> configuration,
>>                        @InjectService("Utf8Filter") final RequestFilter
>> utf8Filter,
>>                        @InjectService("TransactionFilter") final
>> RequestFilter transactionFilter,
>>                        @InjectService("SecurityFilter") final
>> RequestFilter securityFilter,
>>                        @InjectService("LocaleFilter") final RequestFilter
>> localeFilter) {
>>        configuration.add("LocaleFilter", localeFilter);
>>        configuration.add("Utf8Filter", utf8Filter);
>>        configuration.add("TransactionFilter", transactionFilter);
>>        configuration.add("SecurityFilter", securityFilter);
>>
>>
>>        }
>>
>>    public RequestFilter buildLocaleFilter(
>>                @InjectService("PersistentLocale") final PersistentLocale
>> persistantLocale,
>>                @InjectService("ThreadLocale") final ThreadLocale
>> threadLocale) {
>>
>>        return new RequestFilter() {
>>
>>                        public boolean service(Request request, Response
>> response,
>>                                        RequestHandler handler) throws
>> IOException {
>>
>>  persistantLocale.set(threadLocale.getLocale());
>>                                return handler.service(request, response);
>>                        }
>>
>>        };
>>    }
>>
>> --------- the exception ---------------
>>
>> java.lang.NullPointerException
>>        at $Request_11f4b87384f.getSession($Request_11f4b87384f.java)
>>        at $Request_11f4b87381c.getSession($Request_11f4b87381c.java)
>>        at
>> org.apache.tapestry5.internal.services.RestoreDirtySessionObjects.requestDidComplete(RestoreDirtySessionObjects.java:35)
>>        at
>> org.apache.tapestry5.internal.services.EndOfRequestEventHubImpl.fire(EndOfRequestEventHubImpl.java:40)
>>        at
>> $EndOfRequestEventHub_11f4b873820.fire($EndOfRequestEventHub_11f4b873820.java)
>>        at
>> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:762)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:748)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> com.joostschouten.common.http.tapestrybase.services.SecurityFilter.service(SecurityFilter.java:151)
>>        at
>> $RequestFilter_11f4b87383a.service($RequestFilter_11f4b87383a.java)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> com.joostschouten.common.http.tapestrybase.services.TransactionFilter.service(TransactionFilter.java:48)
>>        at
>> $RequestFilter_11f4b873839.service($RequestFilter_11f4b873839.java)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> com.joostschouten.common.http.tapestrybase.services.BaseModule$2.service(BaseModule.java:171)
>>        at
>> $RequestFilter_11f4b873838.service($RequestFilter_11f4b873838.java)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> com.joostschouten.common.http.tapestrybase.services.BaseModule$3.service(BaseModule.java:188)
>>        at
>> $RequestFilter_11f4b87383b.service($RequestFilter_11f4b87383b.java)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
>>        at
>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
>>        at
>> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>>        at
>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
>>        at
>> $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
>>        at
>> $RequestHandler_11f4b873831.service($RequestHandler_11f4b873831.java)
>>        at
>> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:193)
>>        at
>> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
>>        at
>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>        at
>> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
>>        at
>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>        at
>> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>>        at
>> $HttpServletRequestFilter_11f4b873830.service($HttpServletRequestFilter_11f4b873830.java)
>>        at
>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>        at
>> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:710)
>>        at
>> $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
>>        at
>> $HttpServletRequestHandler_11f4b87382d.service($HttpServletRequestHandler_11f4b87382d.java)
>>        at
>> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
>>        at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
>>        at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
>>        at
>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>        at
>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>        at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
>>        at
>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:416)
>>        at
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>        at
>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>        at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>        at org.mortbay.jetty.Server.handle(Server.java:324)
>>        at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>>        at
>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826)
>>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523)
>>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
>>        at
>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>>        at
>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Hard to track NPE

Posted by Ulrich Stärk <ul...@spielviel.de>.
Damn, hit the wrong key!

This might help:

https://issues.apache.org/jira/browse/TAP5-456

Cheers,

Uli

Joost Schouten (mailing lists) schrieb:
> Hi,
> 
> I'm getting a NPE in tapestries reflected Request after I contributed
> a new RequestFilter (LocaleFilter below; see snippet). My pages appear
> as expected which leads me to assume it has something to do with the
> Request being completed when my code tries to access it (the stack
> hints that to). But since debugging is hard and the NPE
> non-descriptive I can't figure out what exactly is going on. Does
> anyone know why I get this NPE and if so, can we make it more
> descriptive than just this descriptionless NPE?
> 
> --------------- my code ------------
> public static void contributeRequestHandler(
> 			final OrderedConfiguration<RequestFilter> configuration,
> 			@InjectService("Utf8Filter") final RequestFilter utf8Filter,
> 			@InjectService("TransactionFilter") final RequestFilter transactionFilter,
> 			@InjectService("SecurityFilter") final RequestFilter securityFilter,
> 			@InjectService("LocaleFilter") final RequestFilter localeFilter) {
>     	configuration.add("LocaleFilter", localeFilter);
>     	configuration.add("Utf8Filter", utf8Filter);
>     	configuration.add("TransactionFilter", transactionFilter);
>     	configuration.add("SecurityFilter", securityFilter);
>     	
>     	
> 	}
> 
>     public RequestFilter buildLocaleFilter(
>     		@InjectService("PersistentLocale") final PersistentLocale
> persistantLocale,
>     		@InjectService("ThreadLocale") final ThreadLocale threadLocale) {
>     	
>         return new RequestFilter() {
> 
> 			public boolean service(Request request, Response response,
> 					RequestHandler handler) throws IOException {
> 				persistantLocale.set(threadLocale.getLocale());
> 				return handler.service(request, response);
> 			}
>         	
>         };
>     }
> 
> --------- the exception ---------------
> 
> java.lang.NullPointerException
> 	at $Request_11f4b87384f.getSession($Request_11f4b87384f.java)
> 	at $Request_11f4b87381c.getSession($Request_11f4b87381c.java)
> 	at org.apache.tapestry5.internal.services.RestoreDirtySessionObjects.requestDidComplete(RestoreDirtySessionObjects.java:35)
> 	at org.apache.tapestry5.internal.services.EndOfRequestEventHubImpl.fire(EndOfRequestEventHubImpl.java:40)
> 	at $EndOfRequestEventHub_11f4b873820.fire($EndOfRequestEventHub_11f4b873820.java)
> 	at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:762)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:748)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.SecurityFilter.service(SecurityFilter.java:151)
> 	at $RequestFilter_11f4b87383a.service($RequestFilter_11f4b87383a.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.TransactionFilter.service(TransactionFilter.java:48)
> 	at $RequestFilter_11f4b873839.service($RequestFilter_11f4b873839.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.BaseModule$2.service(BaseModule.java:171)
> 	at $RequestFilter_11f4b873838.service($RequestFilter_11f4b873838.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.BaseModule$3.service(BaseModule.java:188)
> 	at $RequestFilter_11f4b87383b.service($RequestFilter_11f4b87383b.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
> 	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at $RequestHandler_11f4b873831.service($RequestHandler_11f4b873831.java)
> 	at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:193)
> 	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> 	at $HttpServletRequestFilter_11f4b873830.service($HttpServletRequestFilter_11f4b873830.java)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:710)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at $HttpServletRequestHandler_11f4b87382d.service($HttpServletRequestHandler_11f4b87382d.java)
> 	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:416)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:324)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Hard to track NPE

Posted by Ulrich Stärk <ul...@spielviel.de>.
This might help:

Joost Schouten (mailing lists) schrieb:
> Hi,
> 
> I'm getting a NPE in tapestries reflected Request after I contributed
> a new RequestFilter (LocaleFilter below; see snippet). My pages appear
> as expected which leads me to assume it has something to do with the
> Request being completed when my code tries to access it (the stack
> hints that to). But since debugging is hard and the NPE
> non-descriptive I can't figure out what exactly is going on. Does
> anyone know why I get this NPE and if so, can we make it more
> descriptive than just this descriptionless NPE?
> 
> --------------- my code ------------
> public static void contributeRequestHandler(
> 			final OrderedConfiguration<RequestFilter> configuration,
> 			@InjectService("Utf8Filter") final RequestFilter utf8Filter,
> 			@InjectService("TransactionFilter") final RequestFilter transactionFilter,
> 			@InjectService("SecurityFilter") final RequestFilter securityFilter,
> 			@InjectService("LocaleFilter") final RequestFilter localeFilter) {
>     	configuration.add("LocaleFilter", localeFilter);
>     	configuration.add("Utf8Filter", utf8Filter);
>     	configuration.add("TransactionFilter", transactionFilter);
>     	configuration.add("SecurityFilter", securityFilter);
>     	
>     	
> 	}
> 
>     public RequestFilter buildLocaleFilter(
>     		@InjectService("PersistentLocale") final PersistentLocale
> persistantLocale,
>     		@InjectService("ThreadLocale") final ThreadLocale threadLocale) {
>     	
>         return new RequestFilter() {
> 
> 			public boolean service(Request request, Response response,
> 					RequestHandler handler) throws IOException {
> 				persistantLocale.set(threadLocale.getLocale());
> 				return handler.service(request, response);
> 			}
>         	
>         };
>     }
> 
> --------- the exception ---------------
> 
> java.lang.NullPointerException
> 	at $Request_11f4b87384f.getSession($Request_11f4b87384f.java)
> 	at $Request_11f4b87381c.getSession($Request_11f4b87381c.java)
> 	at org.apache.tapestry5.internal.services.RestoreDirtySessionObjects.requestDidComplete(RestoreDirtySessionObjects.java:35)
> 	at org.apache.tapestry5.internal.services.EndOfRequestEventHubImpl.fire(EndOfRequestEventHubImpl.java:40)
> 	at $EndOfRequestEventHub_11f4b873820.fire($EndOfRequestEventHub_11f4b873820.java)
> 	at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:762)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:748)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.SecurityFilter.service(SecurityFilter.java:151)
> 	at $RequestFilter_11f4b87383a.service($RequestFilter_11f4b87383a.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.TransactionFilter.service(TransactionFilter.java:48)
> 	at $RequestFilter_11f4b873839.service($RequestFilter_11f4b873839.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.BaseModule$2.service(BaseModule.java:171)
> 	at $RequestFilter_11f4b873838.service($RequestFilter_11f4b873838.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at com.joostschouten.common.http.tapestrybase.services.BaseModule$3.service(BaseModule.java:188)
> 	at $RequestFilter_11f4b87383b.service($RequestFilter_11f4b87383b.java)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
> 	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
> 	at $RequestHandler_11f4b87383f.service($RequestHandler_11f4b87383f.java)
> 	at $RequestHandler_11f4b873831.service($RequestHandler_11f4b873831.java)
> 	at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:193)
> 	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> 	at $HttpServletRequestFilter_11f4b873830.service($HttpServletRequestFilter_11f4b873830.java)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:710)
> 	at $HttpServletRequestHandler_11f4b873833.service($HttpServletRequestHandler_11f4b873833.java)
> 	at $HttpServletRequestHandler_11f4b87382d.service($HttpServletRequestHandler_11f4b87382d.java)
> 	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:416)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:324)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org