Lewis John McGibbney created OODT-995: -----------------------------------------
Summary: ProductType is not serializable Key: OODT-995 URL: https://issues.apache.org/jira/browse/OODT-995 Project: OODT Issue Type: Bug Components: file manager, opsui Affects Versions: 1.2.4 Reporter: Lewis John McGibbney Fix For: 1.9 In my COAL project, we are using the OPSUI Web Application for PCS. When navigating to http://localhost:8080/opsui/types/, I regularly see stuff like this {code} ERROR - Objects - Error serializing object class org.apache.oodt.pcs.opsui.TypesPage [object=[Page class = org.apache.oodt.pcs.opsui.TypesPage, id = 2, version = 0]] org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: Unable to serialize class: org.apache.oodt.cas.filemgr.structs.ProductType Field hierarchy is: 2 [class=org.apache.oodt.pcs.opsui.TypesPage, path=2] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] private org.apache.wicket.markup.html.link.PopupSettings org.apache.wicket.markup.html.link.ExternalLink.popupSettings[8] [class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types, path=2:types_component] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$2, path=2:types_component:cas_fm_browser_ptype_table_rows] java.lang.Object org.apache.wicket.Component.data [class=org.apache.wicket.model.util.WildcardListModel] private java.lang.Object org.apache.wicket.model.util.GenericBaseModel.object [class=java.util.Vector] private java.lang.Object org.apache.wicket.model.util.GenericBaseModel.object[write:1] [class=[Ljava.lang.Object;] private java.lang.Object org.apache.wicket.model.util.GenericBaseModel.object[write:1][0] [class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple] private java.util.List org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types [class=java.util.Vector] private java.util.List org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types[write:1] [class=[Ljava.lang.Object;] private java.util.List org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types[write:1][0] [class=org.apache.oodt.cas.filemgr.structs.ProductType] <----- field that is not serializable at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:386) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:64) at org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:535) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1145) at java.base/java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:163) at java.base/java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1713) at java.base/java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:483) at java.base/java.util.Vector.writeObject(Vector.java:1217) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:542) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:64) at org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:535) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1145) at java.base/java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:163) at java.base/java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1713) at java.base/java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:483) at java.base/java.util.Vector.writeObject(Vector.java:1217) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:542) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656) at org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365) at org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:725) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:345) at org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:129) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:345) at org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124) at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203) at org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:840) at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332) at org.apache.wicket.Session.requestDetached(Session.java:1435) at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1176) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1462) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:844) Caused by: java.io.NotSerializableException: org.apache.oodt.cas.filemgr.structs.ProductType at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185) at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1379) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175) at java.base/java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:163) at java.base/java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1713) at java.base/java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:483) at java.base/java.util.Vector.writeObject(Vector.java:1217) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1379) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175) at java.base/java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:163) at java.base/java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1713) at java.base/java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:483) at java.base/java.util.Vector.writeObject(Vector.java:1217) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:442) at org.apache.wicket.Component.writeObject(Component.java:4700) at jdk.internal.reflect.GeneratedMethodAccessor38.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1379) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) at org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121) ... 30 more {code} This indicates that ProductType is not serializable. I am going to try and work out what that really means and what the impact is of addressing the issue. -- This message was sent by Atlassian JIRA (v7.6.3#76005)