{"action":"closed","issue":{"url":"https://api.github.com/repos/decebals/pippo/issues/96","labels_url":"https://api.github.com/repos/decebals/pippo/issues/96/labels{/name}","comments_url":"https://api.github.com/repos/decebals/pippo/issues/96/comments","events_url":"https://api.github.com/repos/decebals/pippo/issues/96/events","html_url":"https://github.com/decebals/pippo/issues/96","id":58771740,"number":96,"title":"Servlet container sticky points","user":{"login":"gitblit","id":868217,"avatar_url":"https://avatars.githubusercontent.com/u/868217?v=3","gravatar_id":"","url":"https://api.github.com/users/gitblit","html_url":"https://github.com/gitblit","followers_url":"https://api.github.com/users/gitblit/followers","following_url":"https://api.github.com/users/gitblit/following{/other_user}","gists_url":"https://api.github.com/users/gitblit/gists{/gist_id}","starred_url":"https://api.github.com/users/gitblit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitblit/subscriptions","organizations_url":"https://api.github.com/users/gitblit/orgs","repos_url":"https://api.github.com/users/gitblit/repos","events_url":"https://api.github.com/users/gitblit/events{/privacy}","received_events_url":"https://api.github.com/users/gitblit/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-02-24T17:25:54Z","updated_at":"2015-04-13T12:29:40Z","closed_at":"2015-04-13T12:29:40Z","body":"I've been running Pippo on a couple containers and I have identified some under-the-hood issues.\r\n\r\n1. `PippoFilter` is not necessarily loaded on startup of the container I think because it is a Filter instead of a Servlet.  This is an issue because I'd rather see Pippo complete it's initialization on startup rather than on the first request.  We might consider switching `PippoFilter` to be `PippoServlet`.  We don't lose anything AFAICS.\r\n2. `PippoFilter` is called by the container for matching path requests (e.g. `/*`).  That means the response supplied to `PippoFilter` starts off at `200 OK`.  We then set `status(Integer.MAX_VALUE)` to indicate Pippo has not properly processed the response and we require that some handler in the chain to set the status to a valid value.<p />Unfortunately, some containers dislike `status(Integer.MAX_VALUE)` and other containers dislike `status(0)`. <p/>So one of the following needs to happen...\r\n    - We identify an integer value that all containers are happy with: 1?  1000?\r\n    - We set a flag in `Response` to indicate we have a set status (`boolean statusSet = false;`)<br/>**this is my vote**\r\n    - We set a status int in `Response` that is used to set the status int in `HttpServletResponse` at the *end of the request*."}}