java.io.NotSerializableException: org.apache.catalina.connector.Request". And now when I try to do it through a shared Terracotta root with a Map, I'm getting: Code: com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class referenced by a portable class. This unshareable class has a super-class that is uninstrumented. Subclasses of uninstrumented classes cannot be shared. For more information on this issue, please visit our Troubleshooting Guide at: http://terracotta.org/kit/troubleshooting Referring class : org.apache.catalina.connector.SessionRequest55 Referring field : org.apache.catalina.connector.Request.inputBuffer Non-portable field name : org.apache.catalina.connector.Request.inputBuffer Thread : http-8443-exec-2 JVM ID : VM(21) Unshareable class : org.apache.catalina.connector.InputBuffer Classes to add to boot jar: java.io.Reader Under most circumstances, you should only be adding classes for your application. If you are adding classes for frameworks or code not written by you, then you should consider finding a Terracotta Integration Module (TIM) that matches the framework you are using. As an example, if the non-portable class listed below is net.sf.ehcache.CacheManager, you should consider using the ehcache TIM. It is possible that some or all of the super classes above are truly non-portable, the solution is then to mark the referring field(s) as transient. Action to take: 1) Reconfigure to include the unshareable super-class(es) * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <additional-boot-jar-classes> <include>java.io.Reader</include> </additional-boot-jar-classes> * if there is already an <additional-boot-jar-classes> element present, simply add the new includes inside it * Recreate the boot jar by running the 'make-boot-jar' tool in the bin/ directory *******************************************************************************

Terracotta | kjordan | 7 years ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    Re:Express Web Sessions with Tomcat Comet Servlet

    Terracotta | 7 years ago | kjordan
    java.io.NotSerializableException: org.apache.catalina.connector.Request". And now when I try to do it through a shared Terracotta root with a Map, I'm getting: Code: com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class referenced by a portable class. This unshareable class has a super-class that is uninstrumented. Subclasses of uninstrumented classes cannot be shared. For more information on this issue, please visit our Troubleshooting Guide at: http://terracotta.org/kit/troubleshooting Referring class : org.apache.catalina.connector.SessionRequest55 Referring field : org.apache.catalina.connector.Request.inputBuffer Non-portable field name : org.apache.catalina.connector.Request.inputBuffer Thread : http-8443-exec-2 JVM ID : VM(21) Unshareable class : org.apache.catalina.connector.InputBuffer Classes to add to boot jar: java.io.Reader Under most circumstances, you should only be adding classes for your application. If you are adding classes for frameworks or code not written by you, then you should consider finding a Terracotta Integration Module (TIM) that matches the framework you are using. As an example, if the non-portable class listed below is net.sf.ehcache.CacheManager, you should consider using the ehcache TIM. It is possible that some or all of the super classes above are truly non-portable, the solution is then to mark the referring field(s) as transient. Action to take: 1) Reconfigure to include the unshareable super-class(es) * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <additional-boot-jar-classes> <include>java.io.Reader</include> </additional-boot-jar-classes> * if there is already an <additional-boot-jar-classes> element present, simply add the new includes inside it * Recreate the boot jar by running the 'make-boot-jar' tool in the bin/ directory *******************************************************************************

    Root Cause Analysis

    1. java.io.NotSerializableException

      org.apache.catalina.connector.Request". And now when I try to do it through a shared Terracotta root with a Map, I'm getting: Code: com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class referenced by a portable class. This unshareable class has a super-class that is uninstrumented. Subclasses of uninstrumented classes cannot be shared. For more information on this issue, please visit our Troubleshooting Guide at: http://terracotta.org/kit/troubleshooting Referring class : org.apache.catalina.connector.SessionRequest55 Referring field : org.apache.catalina.connector.Request.inputBuffer Non-portable field name : org.apache.catalina.connector.Request.inputBuffer Thread : http-8443-exec-2 JVM ID : VM(21) Unshareable class : org.apache.catalina.connector.InputBuffer Classes to add to boot jar: java.io.Reader Under most circumstances, you should only be adding classes for your application. If you are adding classes for frameworks or code not written by you, then you should consider finding a Terracotta Integration Module (TIM) that matches the framework you are using. As an example, if the non-portable class listed below is net.sf.ehcache.CacheManager, you should consider using the ehcache TIM. It is possible that some or all of the super classes above are truly non-portable, the solution is then to mark the referring field(s) as transient. Action to take: 1) Reconfigure to include the unshareable super-class(es) * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <additional-boot-jar-classes> <include>java.io.Reader</include> </additional-boot-jar-classes> * if there is already an <additional-boot-jar-classes> element present, simply add the new includes inside it * Recreate the boot jar by running the 'make-boot-jar' tool in the bin/ directory *******************************************************************************

      at com.tc.object.ClientObjectManagerImpl.throwNonPortableException()
    2. com.tc.object
      ManagerUtil.logicalInvoke
      1. com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:783)
      2. com.tc.object.ClientObjectManagerImpl.checkPortabilityOfTraversedReference(ClientObjectManagerImpl.java:673)
      3. com.tc.object.ClientObjectManagerImpl.access$700(ClientObjectManagerImpl.java:82)
      4. com.tc.object.ClientObjectManagerImpl$NewObjectTraverseTest.checkPortability(ClientObjectManagerImpl.java:1051)
      5. com.tc.object.Traverser.addReferencedObjects(Traverser.java:46)
      6. com.tc.object.Traverser.traverse(Traverser.java:87)
      7. com.tc.object.ClientObjectManagerImpl.traverse(ClientObjectManagerImpl.java:942)
      8. com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:299)
      9. com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:340)
      10. com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:327)
      11. com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:509)
      12. com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:17)
      13. com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:289)
      14. com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:312)
      14 frames
    3. Java RT
      HashMap.put
      1. java.util.HashMap.put(Unknown Source)
      1 frame
    4. com.terracotta.session
      SessionData.setAttribute
      1. com.terracotta.session.HashMapAttributeStore.put(HashMapAttributeStore.java:23)
      2. com.terracotta.session.SessionData.bindAttribute(SessionData.java:376)
      3. com.terracotta.session.SessionData.__tc_wrapped_setAttributeReturnOld(SessionData.java:273)
      4. com.terracotta.session.SessionData.setAttributeReturnOld(SessionData.java)
      5. com.terracotta.session.SessionData.setAttribute(SessionData.java:265)
      5 frames
    5. Glassfish Core
      RemoteIpValve.invoke
      1. org.apache.catalina.valves.CometConnectionManagerValve.invoke(Unknown Source)
      2. org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
      3. org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
      4. org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
      5. org.apache.catalina.valves.RemoteIpValve.invoke(Unknown Source)
      5 frames
    6. org.terracotta.modules
      SessionValve55.invoke
      1. org.terracotta.modules.tomcat.tomcat_5_5.SessionValve55.tcInvoke(SessionValve55.java:84)
      2. org.terracotta.modules.tomcat.tomcat_5_5.SessionValve55.invoke(SessionValve55.java:71)
      2 frames
    7. Glassfish Core
      CoyoteAdapter.service
      1. org.apache.catalina.connector.CoyoteAdapter.service(Unknown Source)
      1 frame
    8. Grizzly HTTP
      NioEndpoint$SocketProcessor.run
      1. org.apache.coyote.http11.Http11NioProcessor.process(Unknown Source)
      2. org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Unknown Source)
      3. org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(Unknown Source)
      3 frames
    9. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      3. java.lang.Thread.run(Thread.java:619)
      3 frames