users@jersey.java.net

Re: [Jersey] Error resolving locale.

From: Erick Dovale <edovale_at_gmail.com>
Date: Tue, 24 Feb 2009 10:20:20 -0500

Sorry, I am on jersey 1.0

On Tue, Feb 24, 2009 at 10:20 AM, Erick Dovale <edovale_at_gmail.com> wrote:

> Paul,
> I am on jersey 1.0.1.
> The ErrorObjectToJSONMessageBodyWriter message body writer that writes
> error objects into the response.
> The ErrorObject is usually created by an exception mapper and put as entity
> in the response to be later processed by the body writer for the appropriate
> content type.
> Make sense?
>
> Thanks.
>
>
> On Tue, Feb 24, 2009 at 10:10 AM, Paul Sandoz <Paul.Sandoz_at_sun.com> wrote:
>
>>
>> On Feb 24, 2009, at 3:42 PM, Erick Dovale wrote:
>>
>> Folks,
>>> Have any of you experienced this before?
>>>
>>>
>> What version of Jersey are you using? I suspect it is 1.0 from looking at
>> the package names.
>>
>> The IllegalStateExeption is thrown when a method is called on HttpContext
>> for which there is no HTTP request, and thus no HttpContext, in scope.
>>
>> I looked at the 1.0 code for WebApplicationImpl [1] and i cannot see how
>> this can manifest itself since the thread local context value is set to null
>> after the ContainerResponse.write method is called.
>>
>> Can you describe a bit more the function of
>> ErrorObjectToJSONMessageBodyWriter? is the "error object" returned from a
>> resource method?
>>
>> Can you try using Jersey 1.0.1 or 1.0.2 and see if the same error occurs?
>>
>> Thanks,
>> Paul.
>>
>> [1]
>> https://jersey.dev.java.net/source/browse/*checkout*/jersey/tags/jersey-1.0/jersey/jersey-server/src/main/java/com/sun/jersey/impl/application/WebApplicationImpl.java?rev=1602
>>
>> public void handleRequest(ContainerRequest request, ContainerResponse
>> response) throws IOException {
>> try {
>> final WebApplicationContext localContext = new
>> WebApplicationContext(this, request, response);
>> context.set(localContext);
>>
>> /**
>> * The matching algorithm currently works from an absolute
>> path.
>> * The path is required to be in encoded form.
>> */
>> StringBuilder path = new StringBuilder();
>> path.append("/").append(localContext.getPath(false));
>>
>> if
>> (!resourceConfig.getFeature(ResourceConfig.FEATURE_MATCH_MATRIX_PARAMS)) {
>> path = stripMatrixParams(path);
>> }
>>
>> // TODO convert to filter
>> // If there are URI conneg extensions for media and language
>> if (!resourceConfig.getMediaTypeMappings().isEmpty() ||
>> !resourceConfig.getLanguageMappings().isEmpty()) {
>> uriConneg(path, request);
>> }
>>
>> for (ContainerRequestFilter f : requestFilters)
>> request = f.filter(request);
>>
>> if (!rootsRule.accept(path, null, localContext)) {
>> throw new NotFoundException();
>> }
>> } catch (WebApplicationException e) {
>> mapWebApplicationException(e, response);
>> } catch (ContainerCheckedException e) {
>> if (!mapException(e.getCause(), response)) {
>> context.set(null);
>> throw e;
>> }
>> } catch (RuntimeException e) {
>> if (!mapException(e, response)) {
>> context.set(null);
>> throw e;
>> }
>> }
>>
>> try {
>> for (ContainerResponseFilter f : responseFilters)
>> response = f.filter(request, response);
>> } catch (WebApplicationException e) {
>> mapWebApplicationException(e, response);
>> } catch (RuntimeException e) {
>> if (!mapException(e, response)) {
>> context.set(null);
>> throw e;
>> }
>> }
>>
>> try {
>> response.write();
>> } catch (WebApplicationException e) {
>> if (response.isCommitted()) {
>> throw e;
>> } else {
>> mapWebApplicationException(e, response);
>> response.write();
>> }
>> } finally {
>> context.set(null);
>>
>> }
>> }
>>
>>
>> Thanks.
>>>
>>> java.lang.IllegalStateException
>>> at
>>> com.sun.jersey.impl.ThreadLocalHttpContext.getRequest(ThreadLocalHttpContext.java:75)
>>> at
>>> com.sun.jersey.impl.application.WebApplicationImpl$1.invoke(WebApplicationImpl.java:179)
>>> at $Proxy195.getLanguage(Unknown Source)
>>> at
>>> com.bps.iproject.jersey.entityproviders.errors.ErrorObjectToJSONMessageBodyWriter.resolveMessage(ErrorObjectToJSONMessageBodyWriter.java:113)
>>> at
>>> com.bps.iproject.jersey.entityproviders.errors.ErrorObjectToJSONMessageBodyWriter.buildJSONEntity(ErrorObjectToJSONMessageBodyWriter.java:83)
>>> at
>>> com.bps.iproject.jersey.entityproviders.errors.ErrorObjectToJSONMessageBodyWriter.writeTo(ErrorObjectToJSONMessageBodyWriter.java:72)
>>> at
>>> com.bps.iproject.jersey.entityproviders.errors.ErrorObjectToJSONMessageBodyWriter.writeTo(ErrorObjectToJSONMessageBodyWriter.java:1)
>>> at
>>> com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:251)
>>> at
>>> com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:752)
>>> at
>>> com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:692)
>>> at
>>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:344)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>>> at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> at
>>> com.bps.iproject.web.filter.CleanupBPSThreadLocalFilter.doFilter(CleanupBPSThreadLocalFilter.java:47)
>>> at
>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
>>> at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
>>> at
>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:175)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> com.bps.iproject.web.security.TrustedSSOAuthenticationProcessingFilter.doFilter(TrustedSSOAuthenticationProcessingFilter.java:116)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)
>>> at
>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>> at
>>> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
>>> at
>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> at
>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>>> at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>>> at
>>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>> at
>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>> at
>>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>> at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>> at java.lang.Thread.run(Unknown Source)
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>
>>
>