Hi, I think in that case (deserializing with a changed class) an InvalidClassException is thrown. See http://java.sun.com/j2se/1.5.0/docs/api/java/io/ObjectInputStream.html#readObject()and http://java.sun.com/j2se/1.5.0/docs/api/java/io/InvalidClassException.html
According to the docs the StreamCorruptedExeption means that the header of the object stream is inconsistent, so I think it can't even start with deserializing the class. The exception is thrown by http://java.sun.com/j2se/1.5.0/docs/api/java/io/ObjectInputStream.html#readStreamHeader() . Lars On Tue, Mar 18, 2008 at 8:44 AM, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > are you using a class reloading mechanism of any sort? this error > would make sense if wicket saved a page to store, you changed the > class def and wicket tried to deserialize an instance of that changed > class.... > > -igor > > > On Tue, Mar 18, 2008 at 12:42 AM, lars vonk <[EMAIL PROTECTED]> wrote: > > Have you found out which Page it tries to deserialize? Did you try to > > deserialize this exact page using another widget? The exception > indicates > > the internal object stream format is corrupted. So this would indeed > mean it > > would also occur if you try to to deserialize it using a "normal" > widget. > > Here is more info about the (de)serialization protocol > > > http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/protocol.html#8101 > > > > I could be way of here so please correct me if I am wrong: I don't know > the > > Wicket internals exactly, but I noticed that the DiskPageStore uses a > pool > > of FileChannels to access the files and if I understand the code > correctly > > it allows the file to be opened for read and write the same time. See > > FilePoonChannel.newFileChannel where the channel is opened in "rw" > mode. So > > maybe it could be a timing issue and you are trying to deserialize a > Page > > that is still in the process of being serialized? > > > > Lars > > > > > > > > > > > > On Tue, Mar 18, 2008 at 2:30 AM, David Leangen <[EMAIL PROTECTED]> > wrote: > > > > > > > > It seems to me that if there was a problem with Serialization, then > > > normal pages would not work, right? > > > > > > So, does anybody have an idea why my pages generally work, but I get > a > > > StreamCorruptedException only when using the autocomplete component? > > > > > > The stack trace and also stepping through the code in detail are not > > > giving me any good hints yet... > > > > > > > > > Thanks! > > > Dave > > > > > > > > > > > > > > > On Mon, 2008-03-17 at 13:38 +0900, David Leangen wrote: > > > > Can anybody suggest how I can try to resolve my > > > > StreamCorruptedException? > > > > > > > > I have an autocomplete text field. When I hit the back button and > modify > > > > the text, I get the said Exception. > > > > > > > > I've tried stepping through the code, but the error is not obvious > at > > > > all. > > > > > > > > The error only happens with the autocomplete widget (i.e. when I > modify > > > > the text in the related text box). Nothing else (different query or > use > > > > of controls or links) triggers this Exception. > > > > > > > > > > > > Thanks! > > > > Dave > > > > > > > > > > > > > > > > > > > > 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.WicketServlet.doGet( > WicketServlet.java > > > :121) > > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java > :707) > > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java > :820) > > > > at > > > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java > :487) > > > > at > > > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java > :367) > > > > at > > > > org.ops4j.pax.web.service.internal.HttpServiceHandler.handle( > > > HttpServiceHandler.java:66) > > > > at > > > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java > :181) > > > > at > > > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java > :712) > > > > 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 > :502) > > > > at org.mortbay.jetty.HttpConnection > > > > $RequestHandler.headerComplete(HttpConnection.java:821) > > > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java > :513) > > > > at org.mortbay.jetty.HttpParser.parseAvailable( > HttpParser.java > > > :208) > > > > at org.mortbay.jetty.HttpConnection.handle( > HttpConnection.java > > > :378) > > > > at org.mortbay.jetty.bio.SocketConnector > > > > $Connection.run(SocketConnector.java:226) > > > > at org.mortbay.thread.BoundedThreadPool > > > > $PoolThread.run(BoundedThreadPool.java:442) > > > > > > > > > > > > Caused by: java.io.StreamCorruptedException > > > > at java.io.ObjectInputStream.readObject0( > ObjectInputStream.java > > > :1332) > > > > at > > > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java > :1908) > > > > at > > > > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java > :1832) > > > > at > > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java > > > :1719) > > > > at java.io.ObjectInputStream.readObject0( > ObjectInputStream.java > > > :1305) > > > > at java.io.ObjectInputStream.readObject( > ObjectInputStream.java > > > :348) > > > > at > > > > org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java > :392) > > > > ... 27 more > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >