You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Ulrich Stärk (JIRA)" <ji...@apache.org> on 2009/01/22 11:33:59 UTC

[jira] Created: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

NPE in HttpServletRequestFilter if ApplicationStateManager is used
------------------------------------------------------------------

                 Key: TAP5-456
                 URL: https://issues.apache.org/jira/browse/TAP5-456
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.0.18
            Reporter: Ulrich Stärk


The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666117#action_12666117 ] 

Ulrich Stärk commented on TAP5-456:
-----------------------------------

A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

{{
public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}
}}

{{
public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}
}}


> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-456.
-------------------------------------

    Resolution: Won't Fix
      Assignee: Howard M. Lewis Ship

Previously fixed in 5.1.0.0.

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>            Assignee: Howard M. Lewis Ship
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677071#action_12677071 ] 

Howard M. Lewis Ship commented on TAP5-456:
-------------------------------------------

I'd like to close this as "won't fix" if it has been incidentally fixed in 5.1, which I believe it has.

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666812#action_12666812 ] 

Howard M. Lewis Ship commented on TAP5-456:
-------------------------------------------

What are you doing as an HttpServletRequestFilter that could not be done as a RequestFilter?

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666887#action_12666887 ] 

Ulrich Stärk commented on TAP5-456:
-----------------------------------

I am wrapping a javax.servlet.Filter that does OpenID authentication processing (spring-security's OpenIDAuthenticationProcessingFilter) in a HttpServletRequestFilter using tapestry-spring-security's HttpServletRequestFilterWrapper. During request processing, the filter is acessing a service responsible for user lookup that I decorated so that the result (the user) is stored as an ASO.
I don't know whether I could also wrap that OpenIDAuthenticationProcessingFilter in a RequestFilter as I don't fully understand the difference between the HttpServletRequestHandler and the RequestHandler pipeline. At least there doesn't exist a wrapper class for the RequestFilter and all other spring-security filters are wrapped as HttpServletRequestFilters too, so there might be a need to do it that way.

Uli

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666117#action_12666117 ] 

ulrich.staerk edited comment on TAP5-456 at 1/22/09 2:43 AM:
------------------------------------------------------------

A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}

public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}


      was (Author: ulrich.staerk):
    A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

{{
public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}
}}

{{
public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}
}}

  
> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666117#action_12666117 ] 

ulrich.staerk edited comment on TAP5-456 at 1/22/09 2:43 AM:
------------------------------------------------------------

A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}

public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}


      was (Author: ulrich.staerk):
    A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

{{
public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}
}}

{{
public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}
}}

  
> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666812#action_12666812 ] 

Howard M. Lewis Ship commented on TAP5-456:
-------------------------------------------

What are you doing as an HttpServletRequestFilter that could not be done as a RequestFilter?

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666887#action_12666887 ] 

Ulrich Stärk commented on TAP5-456:
-----------------------------------

I am wrapping a javax.servlet.Filter that does OpenID authentication processing (spring-security's OpenIDAuthenticationProcessingFilter) in a HttpServletRequestFilter using tapestry-spring-security's HttpServletRequestFilterWrapper. During request processing, the filter is acessing a service responsible for user lookup that I decorated so that the result (the user) is stored as an ASO.
I don't know whether I could also wrap that OpenIDAuthenticationProcessingFilter in a RequestFilter as I don't fully understand the difference between the HttpServletRequestHandler and the RequestHandler pipeline. At least there doesn't exist a wrapper class for the RequestFilter and all other spring-security filters are wrapped as HttpServletRequestFilters too, so there might be a need to do it that way.

Uli

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677071#action_12677071 ] 

Howard M. Lewis Ship commented on TAP5-456:
-------------------------------------------

I'd like to close this as "won't fix" if it has been incidentally fixed in 5.1, which I believe it has.

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-456.
-------------------------------------

    Resolution: Won't Fix
      Assignee: Howard M. Lewis Ship

Previously fixed in 5.1.0.0.

> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>            Assignee: Howard M. Lewis Ship
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (TAP5-456) NPE in HttpServletRequestFilter if ApplicationStateManager is used

Posted by "Ulrich Stärk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666117#action_12666117 ] 

Ulrich Stärk commented on TAP5-456:
-----------------------------------

A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline:

{{
public static HttpServletRequestFilter buildSetHttpServletRequestResponse(
        final RequestGlobals requestGlobals,
        @Inject @Symbol(SymbolConstants.CHARSET) final String applicationCharset)
{
    return new HttpServletRequestFilter()
    {

        public boolean service(HttpServletRequest servletRequest,
                HttpServletResponse servletResponse, HttpServletRequestHandler handler)
                throws IOException
        {

            requestGlobals.storeServletRequestResponse(servletRequest, servletResponse);
            
            Request request = new RequestImpl(servletRequest, applicationCharset);
            
            Response response = new ResponseImpl(servletResponse);
            
            requestGlobals.storeRequestResponse(request, response);

            return handler.service(servletRequest, servletResponse);
        }
    };
}
}}

{{
public static void contributeHttpServletRequestHandler(
        OrderedConfiguration<HttpServletRequestFilter> configuration,
        @InjectService("setHttpServletRequestResponse") HttpServletRequestFilter setRequestResponse)
{
    configuration.add("setHttpServletRequestResponse", setRequestResponse, "before:*");
}
}}


> NPE in HttpServletRequestFilter if ApplicationStateManager is used
> ------------------------------------------------------------------
>
>                 Key: TAP5-456
>                 URL: https://issues.apache.org/jira/browse/TAP5-456
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.18
>            Reporter: Ulrich Stärk
>
> The same problem as described in TAP5-257 holds true for the HttpServletRequestHandler pipeline. If a filter wants to store or retrieve something from the ApplicationStateManager, a NPE is thrown because HttpServletRequest, HttpServletResponse, Request and Response are not stored in the RequestGlobals yet. A workaround is to write a HttpServletRequestFilter that stores these objects into the RequestGlobals service and place it at the very beginning of the pipeline.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.