[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3343) Bijection problem when page is deserialized from PageStore

Marcell Barbacena (JIRA) jira-events at lists.jboss.org
Mon Sep 22 14:16:20 EDT 2008


    [ https://jira.jboss.org/jira/browse/JBSEAM-3343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12430667#action_12430667 ] 

Marcell Barbacena commented on JBSEAM-3343:
-------------------------------------------

I could reproduce it clicking 2 times the confirm button in the Confirm Hotel Booking page from Beta1 wicket example.
Got the following stacktrace (may be some other bug, but it is related to PageStore was well):

15:09:50,096 ERROR [org.apache.wicket.util.lang.Objects] Error serializing object class org.jboss.seam.example.wicket.Co
nfirm [object=[Page class = org.jboss.seam.example.wicket.Confirm, id = 21, version = 0]]
org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: Unable to serialize class: java.lang.refle
ct.Method
Field hierarchy is:
  21 [class=org.jboss.seam.example.wicket.Confirm, path=21]
    private org.jboss.seam.example.wicket.action.HotelBooking org.jboss.seam.example.wicket.Confirm.hotelBooking [class=
org.javassist.tmp.java.lang.Object_$$_javassist_5]
      private java.util.List org.jboss.seam.intercept.RootInterceptor.userInterceptors [class=java.util.ArrayList]
        private java.util.List org.jboss.seam.intercept.RootInterceptor.userInterceptors[write:1][write:2][write:3] [cla
ss=org.jboss.seam.security.SecurityInterceptor]
          private java.util.Map org.jboss.seam.security.SecurityInterceptor.restrictions [class=java.util.HashMap]
            private java.util.Map org.jboss.seam.security.SecurityInterceptor.restrictions[write:1] [class=java.lang.ref
lect.Method] <----- field that is not serializable
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:342)
        at org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:63)
        at org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableCheck
er.java:489)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1116)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1000)
        at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:496)
        at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610)
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533)
        at org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:63)
        at org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableCheck
er.java:489)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1116)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.ArrayList.writeObject(ArrayList.java:570)
        at sun.reflect.GeneratedMethodAccessor233.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:496)
        at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610)
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533)
        at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610)
        at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533)
        at org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:678)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
        at org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:125)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
        at org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1090)
        at org.apache.wicket.protocol.http.pagestore.AbstractPageStore$PageSerializer.getPageReplacementObject(AbstractP
ageStore.java:278)
        at org.apache.wicket.Page.writeReplace(Page.java:1301)
        at sun.reflect.GeneratedMethodAccessor172.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1032)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1107)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:117)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
        at org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1090)
        at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:197)
        at org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:810)
        at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSess
ionStore.java:332)
        at org.apache.wicket.Session.requestDetached(Session.java:1370)
        at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1091)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1349)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
        at org.jboss.seam.web.WicketFilter$1.process(WicketFilter.java:57)
        at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
        at org.jboss.seam.web.WicketFilter.doFilter(WicketFilter.java:52)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.NotSerializableException: java.lang.reflect.Method
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1000)
        at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.ArrayList.writeObject(ArrayList.java:570)
        at sun.reflect.GeneratedMethodAccessor233.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:117)
        ... 55 more


> Bijection problem when page is deserialized from PageStore
> ----------------------------------------------------------
>
>                 Key: JBSEAM-3343
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-3343
>             Project: Seam
>          Issue Type: Bug
>          Components: Wicket
>    Affects Versions: 2.1.0.BETA1
>         Environment: Windows, JBoss 4.2.2
>            Reporter: Marcell Barbacena
>            Assignee: Pete Muir
>            Priority: Critical
>             Fix For: 2.1.0.CR1
>
>
> I am receiving the following stacktrace when I double click in a link (from the stacktrace I am seeing it is trying to deserialize a page and I think that is because of the second click going to the same page as the first click):
> java.lang.ClassCastException: cannot assign instance of org.jboss.seam.wicket.ioc.WicketHandler to field br.gov.tse.secad.elo.web.CustomerList$1.handler of type org.jboss.seam.wicket.ioc.WicketHandler in instance of br.gov.tse.secad.elo.web.CustomerList$1
>      at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2032)
>      at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1212)
>      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1953)
>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>      at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:393)
>      at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
>      at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
>      at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)
>      at org.apache.wicket.Session.getPage(Session.java:751)
>      at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:448)
>      at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139)
>      at org.apache.wicket.RequestCycle.step(RequestCycle.java:1224)
>      at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)
>      at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
>      at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363)
>      at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
>      at org.jboss.seam.web.WicketFilter$1.process(WicketFilter.java:57)
>      at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
>      at org.jboss.seam.web.WicketFilter.doFilter(WicketFilter.java:52)
>      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>      at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
>      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
>      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
>      at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list