com.tc.exception.TCNonPortableObjectError

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • Integrating Terracotta with a Grails-App
    via by cihan,
  • Problem with classloader on JBoss 5.1.0.GA
    via by Unknown author,
  • NOTE: This BUG now refers to updating the nonportable (non-portable) error message. Consider this class: public class UserDetailsWrapper implements UserDetails { private final StandardAuthoritiesService service; private final User delegate; public UserDetailsWrapper(final StandardAuthoritiesService service, final User delegate) { this.service = service; this.delegate = delegate; } // ... } When this enters a clustered graph, the service field is clustered by default. However, you might not want to cluster it if the Spring bean for the service isn't clustered. Terracotta will spit out a TCNonPortableObjectError like the one below if an instance of UserDetailsWrapper is for example stored in a clustered session. Nothing whatshowever in this output refers to the class above, hence making it virtually impossible for the user to know what to do. They will just add JdkDynamicAopProxy to the included classes and start to pull in any possible class that is used by the service and Spring AOP. This actually happened to me and it took me hours of searching and backing up to figure out where to cut the shared graph. From the output below it's almost impossible to figure out that the right course of action is adding the following configuration snippet: <transient-fields> <field-name>org.terracotta.reference.exam.security.UserDetailsWrapper.service</field-name> </transient-fields> [INFO] [cargo0] com.tc.exception.TCNonPortableObjectError: [INFO] [cargo0] ******************************************************************************* [INFO] [cargo0] Attempt to share an instance of a non-portable class referenced by a portable class. This [INFO] [cargo0] unshareable class has not been included for sharing in the configuration. [INFO] [cargo0] [INFO] [cargo0] For more information on this issue, please visit our Troubleshooting Guide at: [INFO] [cargo0] http://terracotta.org/kit/troubleshooting [INFO] [cargo0] [INFO] [cargo0] Referring class : $Proxy20 [INFO] [cargo0] Thread : http-8080-1 [INFO] [cargo0] JVM ID : VM(1) [INFO] [cargo0] Non-included class: org.springframework.aop.framework.JdkDynamicAopProxy [INFO] [cargo0] [INFO] [cargo0] Action to take: [INFO] [cargo0] [INFO] [cargo0] 1) Reconfigure to include the unshareable classes [INFO] [cargo0] * edit your tc-config.xml file [INFO] [cargo0] * locate the <dso> element [INFO] [cargo0] * add this snippet inside the <dso> element [INFO] [cargo0] [INFO] [cargo0] <instrumented-classes> [INFO] [cargo0] <include> [INFO] [cargo0] <class-expression>org.springframework.aop.framework.JdkDynamicAopProxy</class-expression> [INFO] [cargo0] </include> [INFO] [cargo0] </instrumented-classes> [INFO] [cargo0] [INFO] [cargo0] * if there is already an <instrumented-classes> element present, simply add [INFO] [cargo0] the new includes inside it [INFO] [cargo0] [INFO] [cargo0] It is possible that some or all of the classes above are truly non-portable, the solution [INFO] [cargo0] is then to mark the referring field as transient. [INFO] [cargo0] [INFO] [cargo0] [INFO] [cargo0] ******************************************************************************* [INFO] [cargo0] [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:826) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfTraversedReference(ClientObjectManagerImpl.java:718) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.access$900(ClientObjectManagerImpl.java:82) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl$NewObjectTraverseTest.checkPortability(ClientObjectManagerImpl.java:1059) [INFO] [cargo0] at com.tc.object.Traverser.addReferencedObjects(Traverser.java:48) [INFO] [cargo0] at com.tc.object.Traverser.traverse(Traverser.java:89) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.addToManagedFromRoot(ClientObjectManagerImpl.java:982) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:338) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:402) [INFO] [cargo0] at com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:375) [INFO] [cargo0] at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:756) [INFO] [cargo0] at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:20) [INFO] [cargo0] at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:235) [INFO] [cargo0] at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:287) [INFO] [cargo0] at java.util.HashMap.put(HashMap.java) [INFO] [cargo0] at com.terracotta.session.SessionData.bindAttribute(SessionData.java:345) [INFO] [cargo0] at com.terracotta.session.SessionData.setAttributeReturnOld(SessionData.java:241) [INFO] [cargo0] at com.terracotta.session.SessionData.setAttribute(SessionData.java:233) [INFO] [cargo0] at org.springframework.security.context.HttpSessionContextIntegrationFilter.storeSecurityContextInSession(HttpSessionContextIntegrationFilter.java:392) [INFO] [cargo0] at org.springframework.security.context.HttpSessionContextIntegrationFilter.access$000(HttpSessionContextIntegrationFilter.java:100) [INFO] [cargo0] at org.springframework.security.context.HttpSessionContextIntegrationFilter$OnRedirectUpdateSessionResponseWrapper.doSessionUpdate(HttpSessionContextIntegrationFilter.java:518) [INFO] [cargo0] at org.springframework.security.context.HttpSessionContextIntegrationFilter$OnRedirectUpdateSessionResponseWrapper.sendRedirect(HttpSessionContextIntegrationFilter.java:506) [INFO] [cargo0] at org.springframework.security.util.RedirectUtils.sendRedirect(RedirectUtils.java:60) [INFO] [cargo0] at org.springframework.security.ui.AbstractProcessingFilter.sendRedirect(AbstractProcessingFilter.java:345) [INFO] [cargo0] at org.springframework.security.ui.AbstractProcessingFilter.successfulAuthentication(AbstractProcessingFilter.java:379) [INFO] [cargo0] at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:266) [INFO] [cargo0] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [INFO] [cargo0] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) [INFO] [cargo0] at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) [INFO] [cargo0] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [INFO] [cargo0] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) [INFO] [cargo0] at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [INFO] [cargo0] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [INFO] [cargo0] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) [INFO] [cargo0] at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174) [INFO] [cargo0] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) [INFO] [cargo0] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [INFO] [cargo0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [INFO] [cargo0] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [INFO] [cargo0] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [INFO] [cargo0] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [INFO] [cargo0] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) [INFO] [cargo0] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [INFO] [cargo0] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) [INFO] [cargo0] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [INFO] [cargo0] at com.tc.tomcat55.session.SessionValve55.tcInvoke(SessionValve55.java:63) [INFO] [cargo0] at com.tc.tomcat55.session.SessionValve55.invoke(SessionValve55.java:50) [INFO] [cargo0] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) [INFO] [cargo0] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) [INFO] [cargo0] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) [INFO] [cargo0] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) [INFO] [cargo0] at java.lang.Thread.run(Thread.java:613)
    via by Geert Bevin,
  • Change the cookbook/hashmap recipe to use Thread instead of Date as hashmap value the NPOE shows null for field name com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class by passing it as an argument to a method of a logically-managed class. This unshareable class is a JVM- or host machine-specific resource. Please ensure that instances of this class don't enter the shared object graph. For more information on this issue, please visit our Troubleshooting Guide at: http://terracotta.org/kit/troubleshooting Thread : main JVM ID : VM(0) Logically-managed class name: java.util.HashMap Logical method name : put(Object,Object) Unshareable class : java.lang.Thread Action to take: 1) Change your application code * Ensure that no instances of java.lang.Thread are added to any shared object graph - OR - 2) Mark the offending field as transient (and thus not shared) * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element, above the <locks> element <transient-fields> <field-name>null</field-name> </transient-fields> * if there is already a <transient-fields> element present, simply add the new field inside it ******************************************************************************* at com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:786) at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfLogicalAction(ClientObjectManagerImpl.java:759) at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:804) at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:18) at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:253) at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:251) at java.util.HashMap.put(Unknown Source) at Main.put(Main.java:29) at Main.run(Main.java:44) at Main.main(Main.java:64)
    via by nadeem ghani,
  • To be clear -- the issue here is that the toolkit throws an exception type that is not part of the toolkit API and violates closure. This surely isn't the only instance of this violation. map.put("test", Color.RED); get's you 2010-05-25 22:05:29,318 INFO - Terracotta 3.3.0-SNAPSHOT, as of 20100522-190529 (Revision 15305 by cruise@su10mo4 from trunk) 2010-05-25 22:05:30,080 INFO - Successfully loaded base configuration from server at 'localhost:9510'. 2010-05-25 22:05:30,135 INFO - Successfully loaded base configuration from file at '/var/folders/px/pxGDUQ1mF1SJpzK1nis6ak+++TM/-Tmp-/tc-config7997769738254236899.xml'. 2010-05-25 22:05:30,559 INFO - Log file: '/Users/steve/terracotta/client-logs/terracotta-client.log'. 2010-05-25 22:05:33,171 INFO - Connection successfully established to server at 192.168.2.19:9510 com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class by passing it as an argument to a method of a logically-managed class. This unshareable class must be in the DSO boot jar. Please add this class to the boot jar configuration and re-create the DSO boot jar. For more information on this issue, please visit our Troubleshooting Guide at: http://www.terracotta.org/kit/reflector?kitID=default&pageID=npoe Thread : main JVM ID : VM(0) Logically-managed class name: org.terracotta.collections.ConcurrentDistributedMapDso Logical method name : put(Object,Object) Class to add to boot jar : java.awt.Color 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 this class is truly non-portable, the solution is then to mark the referring field as transient. For more information on non-portable classes see the Troubleshooting Guide. Action to take: 1) Reconfigure and rebuild the boot jar * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <additional-boot-jar-classes> <include>java.awt.Color</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(ClientObjectManagerImpl.java:781) at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfLogicalAction(ClientObjectManagerImpl.java:754) at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:506) at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:17) at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:295) at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:316) at org.terracotta.collections.ConcurrentDistributedMapDso.doLogicalPut(ConcurrentDistributedMapDso.java:155) at org.terracotta.collections.ConcurrentDistributedMapDso.put(ConcurrentDistributedMapDso.java:123) at org.terracotta.collections.ConcurrentDistributedMapDsoArray.put(ConcurrentDistributedMapDsoArray.java:182) at org.terracotta.collections.ConcurrentDistributedMapImpl.put(ConcurrentDistributedMapImpl.java:213) at PlayingWithExpress.main(PlayingWithExpress.java:31) Exception in thread "main" com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class by passing it as an argument to a method of a logically-managed class. This unshareable class must be in the DSO boot jar. Please add this class to the boot jar configuration and re-create the DSO boot jar. For more information on this issue, please visit our Troubleshooting Guide at: http://www.terracotta.org/kit/reflector?kitID=default&pageID=npoe Thread : main JVM ID : VM(0) Logically-managed class name: org.terracotta.collections.ConcurrentDistributedMapDso Logical method name : put(Object,Object) Class to add to boot jar : java.awt.Color 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 this class is truly non-portable, the solution is then to mark the referring field as transient. For more information on non-portable classes see the Troubleshooting Guide. Action to take: 1) Reconfigure and rebuild the boot jar * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <additional-boot-jar-classes> <include>java.awt.Color</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(ClientObjectManagerImpl.java:781) at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfLogicalAction(ClientObjectManagerImpl.java:754) at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:506) at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:17) at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:295) at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:316) at org.terracotta.collections.ConcurrentDistributedMapDso.doLogicalPut(ConcurrentDistributedMapDso.java:155) at org.terracotta.collections.ConcurrentDistributedMapDso.put(ConcurrentDistributedMapDso.java:123) at org.terracotta.collections.ConcurrentDistributedMapDsoArray.put(ConcurrentDistributedMapDsoArray.java:182) at org.terracotta.collections.ConcurrentDistributedMapImpl.put(ConcurrentDistributedMapImpl.java:213) at PlayingWithExpress.main(PlayingWithExpress.java:31)
    via by Steve Harris,
  • If you're using a container TIM (e.g. tim-tomcat-6.0) and want to use something else that depends on the EE toolkit (eg. tim-ehcache-2.x-ee) you currently need to list explicit toolkit references in tc-config.xml (see DEV-5524). Doing that you might end up with a <modules> section like this: {quote} <modules> <module name="tim-tomcat-6.0" version="2.2.2"/> <module name="tim-ehcache-2.x-ee" version="1.7.0"/> <module group-id="org.terracotta.toolkit" name="terracotta-toolkit-1.2" version="3.0.0"/> <module group-id="org.terracotta.toolkit" name="terracotta-toolkit-1.2-ee" version="3.0.0"/> </modules> {quote} Unfortunately doing that will let an <include> in the toolkit decide the honor-transient setting for org.terracotta.modules.ehcache.store.ClusteredStore (specifically the include for org.terracotta.cache.logging.ConfigChangeListener+) Ultimately you'll end up with this exception since the transients aren't honored. A workaround is to list tim-ehcache-2.x-ee last in the <modules> list {quote} com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class referenced by a portable class. This unshareable class has not been included for sharing in the configuration. For more information on this issue, please visit our Troubleshooting Guide at: http://www.terracotta.org/kit/reflector?kitID=default&pageID=npoe Referring class : org.terracotta.modules.ehcache.store.EnterpriseClusteredStore Referring field : org.terracotta.modules.ehcache.store.ClusteredStore.nonStrictBackend Non-portable field name: org.terracotta.modules.ehcache.store.ClusteredStore.nonStrictBackend Thread : main JVM ID : VM(1) Non-included class : org.terracotta.modules.ehcache.store.backend.NonStrictBackend 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 also possible that some or all of the classes above are truly non-portable, the solution is then to mark the referring field as transient. For more information on non-portable classes see the Troubleshooting Guide. Action to take: 1) Reconfigure to include the unshareable classes * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <instrumented-classes> <include> <class-expression>org.terracotta.modules.ehcache.store.backend.NonStrictBackend</class-expression> </include> </instrumented-classes> * if there is already an <instrumented-classes> element present, simply add the new includes inside it ******************************************************************************* at com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:798) at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfTraversedReference(ClientObjectManagerImpl.java:689) at com.tc.object.ClientObjectManagerImpl.access$700(ClientObjectManagerImpl.java:84) at com.tc.object.ClientObjectManagerImpl$NewObjectTraverseTest.checkPortability(ClientObjectManagerImpl.java:1071) at com.tc.object.Traverser.addReferencedObjects(Traverser.java:47) at com.tc.object.Traverser.traverse(Traverser.java:81) at com.tc.object.ClientObjectManagerImpl.traverse(ClientObjectManagerImpl.java:962) at com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:307) at com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:354) at com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:335) at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:511) at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:17) at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:338) at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:325) at com.terracotta.toolkit.collections.ConcurrentDistributedMapDso.doLogicalPut(ConcurrentDistributedMapDso.java:158) at com.terracotta.toolkit.collections.ConcurrentDistributedMapDso.putIfAbsent(ConcurrentDistributedMapDso.java:508) at com.terracotta.toolkit.collections.ConcurrentDistributedMapDsoArray.putIfAbsent(ConcurrentDistributedMapDsoArray.java:176) at org.terracotta.collections.ConcurrentDistributedMap.putIfAbsent(ConcurrentDistributedMap.java:144) at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getOrCreateStoreInternal(TerracottaClusteredInstanceFactory.java:244) at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getOrCreateStore(TerracottaClusteredInstanceFactory.java:229) at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getOrCreateStore(TerracottaClusteredInstanceFactory.java:122) at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.createStore(TerracottaClusteredInstanceFactory.java:116) at net.sf.ehcache.terracotta.ClusteredInstanceFactoryWrapper.createStore(ClusteredInstanceFactoryWrapper.java:81) at net.sf.ehcache.CacheManager.createTerracottaStore(CacheManager.java:456) at net.sf.ehcache.Cache.initialise(Cache.java:1050) at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:1057) at net.sf.ehcache.CacheManager.addCache(CacheManager.java:980) {quote}
    via by Tim Eck,
  • com.tc.exception.TCNonPortableObjectError
    via by arthaha,
    • com.tc.exception.TCNonPortableObjectError: ******************************************************************************* Attempt to share an instance of a non-portable class by passing it as an argument to a method of a logically-managed class. This unshareable class has not been included for sharing in the configuration. For more information on this issue, please visit our Troubleshooting Guide at: http://terracotta.org/kit/troubleshooting Thread : http-8188-Processor2 JVM ID : VM(2) Logically-managed class name: java.util.HashMap Logical method name : put(Object,Object) Non-included classes : org.codehaus.groovy.runtime.GStringImpl, groovy.lang.GString, groovy.lang.GroovyObjectSupport 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 also possible that some or all of the classes above are truly non-portable, the solution is then to mark the referring field as transient. For more information on non-portable classes see the Troubleshooting Guide. Action to take: 1) Reconfigure to include the unshareable classes * edit your tc-config.xml file * locate the <dso> element * add this snippet inside the <dso> element <instrumented-classes> <include> <class-expression>org.codehaus.groovy.runtime.GStringImpl</class-expression> </include> <include> <class-expression>groovy.lang.GString</class-expression> </include> <include> <class-expression>groovy.lang.GroovyObjectSupport</class-expression> </include> </instrumented-classes> * if there is already an <instrumented-classes> element present, simply add the new includes inside it ******************************************************************************* at com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:755) at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfLogicalAction(ClientObjectManagerImpl.java:729) at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:743) at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:20) at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:229) at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:247) at java.util.HashMap.put(HashMap.java) at org.codehaus.groovy.grails.web.servlet.GrailsFlashScope.put(GrailsFlashScope.java:149) at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:1909) at groovy.lang.ExpandoMetaClass.setProperty(ExpandoMetaClass.java:1000) at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2591) at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:199) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:506) at RaceController$_closure9.doCall(RaceController.groovy:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:78) at RaceController$_closure9.doCall(RaceController.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756) at groovy.lang.Closure.call(Closure.java:292) at groovy.lang.Closure.call(Closure.java:287) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:503) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:394) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:233) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:154) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:88) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:260) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at com.terracotta.session.TerracottaDispatcher.forward(TerracottaDispatcher.java:29) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:202) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:189) at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:117) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.parsePage(GrailsPageFilter.java:123) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:65) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at com.tc.tomcat55.session.SessionValve55.tcInvoke(SessionValve55.java:63) at com.tc.tomcat55.session.SessionValve55.invoke(SessionValve55.java:50) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619)
    No Bugmate found.