• Bug
  • Status: Closed
  • 1 Critical
  • Resolution: Fixed
  • DSO:L1
  • teck
  • Reporter: teck
  • February 20, 2007
  • 0
  • Watchers: 0
  • July 27, 2012
  • March 15, 2007

Description

The following message was given. The type in question (wicket.PageParameters) is a subclass of a subclass of a logical collection (ie. PageParameters <- ValueMap <- HashMap). The ValueMap class was not included for instrumentation, but PageParameter was. ValueMap does not do anything that would make it an unshareable subclass of HashMap, it was just not included.

Given that, the message below is fairly misleading.

com.tc.exception.TCNonPortableObjectError: Attempt to share an instance of a non-portable class referenced by a portable class. This unshareable class has a logically-managed superclass. Subclasses of logically-managed classes cannot be shared. Please either modify the class hierarchy or ensure that instances of this class don’t enter the shared object graph.

Referring class : wicket.markup.html.link.BookmarkablePageLink Referring field : wicket.markup.html.link.BookmarkablePageLink.parameters Thread : http-8081-Processor4 JVM ID : VM(1) Unshareable class : wicket.PageParameters Logically-managed superclass names: java.util.HashMap

com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:627)
com.tc.object.ClientObjectManagerImpl.checkPortabilityOfTraversedReference(ClientObjectManagerImpl.java:569)
com.tc.object.ClientObjectManagerImpl.access$800(ClientObjectManagerImpl.java:64)
com.tc.object.ClientObjectManagerImpl$NewObjectTraverseTest.checkPortability(ClientObjectManagerImpl.java:844)
com.tc.object.Traverser.addReferencedObjects(Traverser.java:48)
com.tc.object.Traverser.traverse(Traverser.java:90)
com.tc.object.ClientObjectManagerImpl.addToManagedFromRoot(ClientObjectManagerImpl.java:787)
com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:261)
com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:326)
com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:298)
com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:573)
com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:19)
com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:205)
com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:131)
java.util.HashMap.put(Unknown Source)
com.terracotta.session.SessionData.setAttribute(SessionData.java:64)
com.terracotta.session.util.StandardSession.bindAttribute(StandardSession.java:154)
com.terracotta.session.util.StandardSession.setAttribute(StandardSession.java:49)
wicket.protocol.http.HttpSessionStore.setAttribute(HttpSessionStore.java:87)
wicket.Session.setAttribute(Session.java:952)
wicket.PageMap.put(PageMap.java:526)
wicket.Session.touch(Session.java:744)
wicket.Page.renderPage(Page.java:419)
wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:226)
wicket.request.compound.DefaultResponseStrategy.respond(DefaultResponseStrategy.java:49)
wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:66)
wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:902)
wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:929)
wicket.RequestCycle.step(RequestCycle.java:1010)
wicket.RequestCycle.steps(RequestCycle.java:1084)
wicket.RequestCycle.request(RequestCycle.java:454)
wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:219)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Comments

Fiona OShea 2007-02-22

If you can fix this one in Moraga timeframe, Steve says do it.

Tim Eck 2007-03-13

updated the messaging for this case

Tim Eck 2007-03-14

the fix for this was not correct