[
https://issues.apache.org/jira/browse/OWB-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15398751#comment-15398751
]
Leonardo Uribe commented on OWB-1123:
-------------------------------------
I see. I have tested already if ViewScopeContextualStorage can be serialized
and I can't see any problem there. MyFaces uses a CDI session scope bean to
hold the view scopes (ViewScopeBeanHolder).
I think it should be some instance that is not serializable inside
ViewScopeContextualStorage but that comes from CDI. With the previous method, I
guess everything was packed somehow to be serialized later. If that instance is
not serializable, it is just skipped on serialization but it lets a null on
deserialization and throw the null pointer exception. There is a call to
java.util.HashMap.readObject(...) in the stack trace, so it is something inside:
private final Map<Object, ContextualInstanceInfo<?>> contextualInstances;
or
private final Map<String, Object> nameBeanKeyMap;
> NPE at NormalScopeProxyFactory.createNormalScopeProxy during deserialization
> ----------------------------------------------------------------------------
>
> Key: OWB-1123
> URL: https://issues.apache.org/jira/browse/OWB-1123
> Project: OpenWebBeans
> Issue Type: Bug
> Affects Versions: 1.6.2
> Environment: TomEE 7.0.0.M2
> Reporter: Bauke Scholtz
> Assignee: Mark Struberg
>
> Imagine a session scoped bean which has an application scoped bean injected
> as property and it's being referenced in {{readObject()}}.
> {code}
> @SessionScoped
> public class SessionScopedBean {
> @Inject
> private ApplicationScopedBean appBean;
> private void readObject(ObjectInputStream input) throws IOException,
> ClassNotFoundException {
> appBean.doSomething();
> }
> }
> {code}
> OWB 1.6.2 as used in TomEE 7.0.0.M2 throws below exception when TomEE is
> restarted with session persistence (and above bean is created during that
> session):
> {code}
> java.lang.NullPointerException
> at
> org.apache.webbeans.proxy.NormalScopeProxyFactory.createNormalScopeProxy(NormalScopeProxyFactory.java:121)
> at
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.readResolve(NormalScopedBeanInterceptorHandler.java:125)
> {code}
> It works fine in all Weld 2.x versions I tested so far (WF8/9/10, PY4 and
> "plain" Tomcat8+Weld 2.3.0).
> Work around would be to use a static method on application scoped bean, but
> this is not nice.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)