Hello all,
We have a weird exception in our system.
My team mates created a non standard DataView:
            final DataView dataView = new DataView("rows", dataProvider)
            {
                protected void populateItem(final Item item)
                {
                    final ManagedItemDecorator entity =
(ManagedItemDecorator)item.getModelObject();
                    //final Component links = new Label("links",new
PropertyModel(entity,"links"));
                    *final Component links = new
LinksPanel("links",null,isEnabled);*
                    item.add(links);
                    AjaxLink expandButton =
GUIUtis.getExpandButton("expandLink",links,entity);
                    WebMarkupContainer expandTD = new
WebMarkupContainer("expand");
                    expandTD.add(GUIUtis.createAttributeModifier("rowspan",
"2"));
                    expandTD.add(expandButton);
                    item.add(expandTD);

.... More stuff here ...

                }
            };

The ExpandButton opens (like a folder in a tree) a Panel that shows more
information.
In the LinksPanel there is another link that open BookmarkablePage.

Scenario:
When we open this BookmarkablePage and then press on ANY of the AjaxLink
(expand button), we get an exception:

2008-05-13 10:55:21,885 ERROR [org.apache.wicket.RequestCycle] - Could not
deserialize object using
`org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory`
object factory
java.lang.RuntimeException: Could not deserialize object using
`org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory`
object factory
    at
org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:406)
    at
org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
    at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:702)
    at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)
    at org.apache.wicket.Session.getPage(Session.java:745)
    at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:443)
    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:1316)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
    at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
com.eurekify.security.SecurityFilter.doFilterInternal(SecurityFilter.java:38)
    at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by: java.io.InvalidClassException:
com.eurekify.tms.web.common.campaign.ManagedItemDecorator; no valid
constructor
    at java.io.ObjectStreamClass.<init>(Unknown Source)
    at java.io.ObjectStreamClass.lookup(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at java.util.ArrayList.writeObject(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at
org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:117)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at
org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1085)
    at
org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:197)
    at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:806)
    at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332)
    at org.apache.wicket.Session.requestDetached(Session.java:1364)
    at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1091)
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1334)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
    at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
com.eurekify.security.SecurityFilter.doFilterInternal(SecurityFilter.java:38)
    at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:628)
... 4 more

I am totally in the dark here.
Is the SecondLevelCacheSessionStore means something with Ajax?
I thought checking by making the expand a non ajax link.
Maybe it's a component we forgot to put in the AjaxRequestTarget?

Thanks

-- 
Eyal Golan
[EMAIL PROTECTED]

Visit: http://jvdrums.sourceforge.net/

Reply via email to