Mark Struberg created OWB-1070:
----------------------------------
Summary: eager session creation configuration
Key: OWB-1070
URL: https://issues.apache.org/jira/browse/OWB-1070
Project: OpenWebBeans
Issue Type: New Feature
Components: Context and Scopes
Affects Versions: 1.5.0
Reporter: Mark Struberg
Assignee: Mark Struberg
Fix For: 1.6.0
In OWB we try to not create any HttpSession if we do not need it. The reason is
that we do not like to pollute the Session for e.g. resource or JAXRS requests.
That would just blow up the memory.
Instead we create the Session lazily. See
{{WebContextsService#lazyStartSessionContext(boolean createSession)}}.
The ConversationContext and thus the Session gets started whenever you use a
@SessionScoped or @ConversationScoped bean the first time and there was no
Session yet.
If that is the case AFTER there was some HttpServletResponse written back to
the client. then you will get the following Exception:
{quote}
IllegalStateException: Cannot create a session after the response has been
committed.
{quote}
We might prevent this by starting the Session for every request. But this has
quite a few downsides, including slowing down any request and polluting memory
with useless Sessions.
A possible solution would be to introduce an {{eagerSessionInitialisation}}
config entry via openwebbeans.properties. It could have 3 options
* {{true}} will create a Session on each request start
* {{false}} (should be default) will use lazySessionInit as always
* a custom String which is a regexp for requests which need an eagerly
initialized Session. All other requests will use lazySessionInit.
Any comment and further ideas are welcome.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)