[ 
https://issues.apache.org/jira/browse/OWB-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15346587#comment-15346587
 ] 

Josef Puff commented on OWB-1123:
---------------------------------

I've the maybe the same issue. 
In my case I have two different Windows Server 2008 R2 with JDK 1.8.0_XX.
On both there is running a Tomcat 8.0.30 with the following server.xml 
configuration:

{code:xml}
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" 
SSLEngine="on" />
  <Listener 
className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener 
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener 
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
redirectPort="8443" />

    <Connector port="8009" enableLookups="false" 
        redirectPort="8443" protocol="AJP/1.3" 
        backlog="50" maxThreads="500" minSpareThreads="25"
                        maxSpareThreads="50" tcpNoDelay="true" 
soTimeout="60000" 
                        tomcatAuthentication="false" />

    <Engine name="Catalina" defaultHost="asmqa.tradeplace.com">
      <Host name="asmqa.tradeplace.com" 
appBase="D:/WWW/applicationName/webapps" unpackWARs="true" autoDeploy="false" 
deployOnStartup="false">
                <Context path="/tp4-web" 
docBase="D:/WWW/applicationName/webapps/applicationName.war" reloadable="false" 
unpackWAR="true">
                        <Manager 
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                                        pathname=""
                                        memcachedNodes="n1:x.x.x.x:11211"
                                        username="Username"
                                        password="PW"
                                        sticky="false"
                                lockingMode="none"
                                        sessionBackupAsync="true"
                                        sessionBackupTimeout="10000"
                                        operationTimeout="10000"
                                        
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" 
                                        
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
                </Context>
          </Host>
    </Engine>
  </Service>
</Server>
{code}


My test scenario is following:
- Startup both tomcats
- Login into my application
- Trigger one Function
- STOP one Tomcat (this one, which I'm currently be)
- Check if my Loadbalancer work fine (which works fine)
- Try any request in my application
- Exception in catalina-log from currently running tomcat:


{noformat}
23-Jun-2016 16:51:43.474 FINE [ajp-apr-8009-exec-25] 
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Loading session 
from memcached: F3229A3A2BC720CD7A982F4E62E6493B-n1
23-Jun-2016 16:51:43.474 FINE [msm-storage-thread-1] 
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing 
attribute 
'org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext:EXISTING_WINDOW_ID_LIST'
 with value '[]'
23-Jun-2016 16:51:43.474 FINE [msm-storage-thread-1] 
de.javakaffee.web.msm.BackupSessionTask.doBackupSession Trying to store session 
in memcached: 7A6A833C1F066B41851DFEC03491BD94-n1
23-Jun-2016 16:51:43.474 FINE [msm-storage-thread-1] 
de.javakaffee.web.msm.BackupSessionTask.call Finished for session id 
7A6A833C1F066B41851DFEC03491BD94-n1, returning status SUCCESS
23-Jun-2016 16:51:43.490 WARNING [ajp-apr-8009-exec-25] 
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Could not load 
session with id F3229A3A2BC720CD7A982F4E62E6493B-n1 from memcached.
 java.lang.NullPointerException
        at 
org.apache.webbeans.proxy.NormalScopeProxyFactory.createNormalScopeProxy(NormalScopeProxyFactory.java:121)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.readResolve(NormalScopedBeanInterceptorHandler.java:125)
        at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1148)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1810)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
        at java.util.HashMap.readObject(HashMap.java:1396)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
        at 
org.apache.webbeans.context.PassivatingContext.readExternal(PassivatingContext.java:54)
        at 
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1842)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1799)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
        at 
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes(JavaSerializationTranscoder.java:172)
        at 
de.javakaffee.web.msm.TranscoderService.deserializeAttributes(TranscoderService.java:171)
        at 
de.javakaffee.web.msm.TranscoderService.deserialize(TranscoderService.java:128)
        at 
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached(MemcachedSessionService.java:1100)
        at 
de.javakaffee.web.msm.MemcachedSessionService.findSession(MemcachedSessionService.java:585)
        at 
de.javakaffee.web.msm.MemcachedBackupSessionManager.findSession(MemcachedBackupSessionManager.java:201)
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2868)
        at org.apache.catalina.connector.Request.getSession(Request.java:2260)
        at 
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:895)
        at 
org.apache.myfaces.context.servlet.SessionMap._getSession(SessionMap.java:87)
        at 
org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:49)
        at 
org.apache.myfaces.util.AbstractThreadSafeAttributeMap.put(AbstractThreadSafeAttributeMap.java:108)
        at 
org.apache.myfaces.util.AbstractThreadSafeAttributeMap.put(AbstractThreadSafeAttributeMap.java:38)
        at 
org.apache.myfaces.extensions.cdi.jsf.impl.util.ConversationUtils.cacheWindowId(ConversationUtils.java:232)
        at 
org.apache.myfaces.extensions.cdi.jsf.impl.util.ConversationUtils.resolveWindowContextId(ConversationUtils.java:163)
        at 
org.apache.myfaces.extensions.cdi.jsf.impl.util.ConversationUtils.tryToRestoreTheWindowIdEagerly(ConversationUtils.java:717)
        at 
org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.broadcastBeforeFacesRequestEvent(CodiLifecycleWrapper.java:164)
        at 
org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:81)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
        at 
org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:112)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
com.applicationName.appName.utils.web.servlet.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:71)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at 
de.javakaffee.web.msm.RequestTrackingContextValve.invoke(RequestTrackingContextValve.java:99)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
        at 
de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:156)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
        at 
org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:850)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
{noformat}

I currently using OWB 1.6.2.

My session database which I use for session replication is couchbase in there 
the sessionId's are definitely persisted.


> 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)

Reply via email to