[Geoserver-devel] [jira] Created: (GEOS-3116) Wicket serialization issue on datastore new page

Wicket serialization issue on datastore new page
------------------------------------------------

                 Key: GEOS-3116
                 URL: http://jira.codehaus.org/browse/GEOS-3116
             Project: GeoServer
          Issue Type: Bug
    Affects Versions: 1.7.4
            Reporter: Andrea Aime
            Assignee: Gabriel Roldán
             Fix For: 2.0-beta2

Gabriel,
me and a GS user noticed the same stack trace in the logs when trying to save a datastore connection:

{code}

2009-06-03 14:21:26,565 ERROR [lang.Objects] - Error serializing object
class org.geoserver.web.data.store.DataAccessNewPage [object=[Page class
= org.geoserver.web.data.store.DataAccessNewPage, id = 4, version = 0]]
org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
Unable to serialize class: org.geoserver.ows.util.ClassProperties
Field hierarchy is:
  4 [class=org.geoserver.web.data.store.DataAccessNewPage, path=4]
    private java.lang.Object org.apache.wicket.MarkupContainer.children
[class=[Ljava.lang.Object;]
      private java.lang.Object
org.apache.wicket.MarkupContainer.children[8]
[class=org.apache.wicket.markup.html.form.Form, path=4:dataStoreForm]
        java.lang.Object org.apache.wicket.Component.data
[class=org.apache.wicket.model.CompoundPropertyModel]
          private java.lang.Object
org.apache.wicket.model.CompoundPropertyModel.target
[class=org.geoserver.catalog.impl.DataStoreInfoImpl]
            org.geoserver.catalog.WorkspaceInfo
org.geoserver.catalog.impl.StoreInfoImpl.workspace [class=$Proxy1]
              protected java.lang.reflect.InvocationHandler
java.lang.reflect.Proxy.h
[class=org.geoserver.catalog.impl.ModificationProxy]
                org.geoserver.ows.util.ClassProperties
org.geoserver.catalog.impl.ModificationProxy.cp
[class=org.geoserver.ows.util.ClassProperties] <----- field that is not
serializable
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:339)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:385)
    at
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:607)
    at
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:530)
    at
org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:675)
    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:1091)
    at
org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:197)
    at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:811)
    at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332)
    at org.apache.wicket.Session.requestDetached(Session.java:1371)
    at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1130)
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
    at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
    at
org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:145)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at
org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
    at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
    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:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
    at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:176)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
    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:233)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
    at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
    at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.NotSerializableException:
org.geoserver.ows.util.ClassProperties
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
    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.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.defaultWriteFields(ObjectOutputStream.java:1509)
    at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
    at org.apache.wicket.Component.writeObject(Component.java:4265)
    at sun.reflect.GeneratedMethodAccessor74.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.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)
    ... 68 more

{code}

In my case I've actually seen it appear only when the datastore params were wrong and I could not connect, the result was:
1) stack trace showing in the logs
2) no error message in the UI (no visible reaction of sorts)

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