Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
JDK version and platform:1.5, windows
Description
There was an issue I raised previously with serialising java swing classes. It was solved for java version 1.4.1 but now when I install java 1.5 it has reared it's ugly head again. Perhaps they fixed the hack you were talking about Joe?
If you need to me to make a test class, just let me know.
Here is the error print out I get when running my program. You'll notice the error is in the JSlider:
com.thoughtworks.xstream.converters.ConversionException: Could not call music.MorphMusicGenerator.readObject()
---- Debugging information ----
required-type : ren.gui.components.LJSlider
cause-message : null
class : [Lmusic.MorphMusicGenerator;
message : Could not call music.MorphMusicGenerator.readObject()
line number : 25585
path : /music.MorphMusicGenerator-array/music.MorphMusicGenerator/music.MorphMusicGenerator/default/cuedMG/music.MusicGenerator/default/lscore/lparts/music.LPart/tc/first/sv/ren.gui.ParameterMap/default/valueModel/listenerList/javax.swing.event.EventListenerList/javax.swing.JSlider-ModelListener/outer-class/java.awt.Component/javax.swing.JComponent-EnableSerializationFocusListener
cause-exception : java.lang.reflect.InvocationTargetException
-------------------------------
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:75)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter.unmarshal(SerializableConverter.java:360)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:82)
at com.thoughtworks.xstream.converters.collections.ArrayConverter.unmarshal(ArrayConverter.java:51)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:99)
at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:12)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:549)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:528)
at com.thoughtworks.xstream.XStream$2.readFromStream(XStream.java:798)
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.readObjectOverride(CustomObjectInputStream.java:66)
at java.io.ObjectInputStream.readObject(Unknown Source)
at MainFrame.load(MainFrame.java:205)
at MainFrame.load(MainFrame.java:191)
at ren.gui.components.RJFrame.actionPerformed(RJFrame.java:51)
at MainFrame.actionPerformed(MainFrame.java:109)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:71)
... 44 more
Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call ren.gui.ParameterMap.readObject()
---- Debugging information ----
required-type : ren.gui.components.LJSlider
cause-message : null
class : music.PatternMusicGenerator
message : Could not call ren.gui.ParameterMap.readObject()
line number : 25585
path : /music.MorphMusicGenerator-array/music.MorphMusicGenerator/music.MorphMusicGenerator/default/cuedMG/music.MusicGenerator/default/lscore/lparts/music.LPart/tc/first/sv/ren.gui.ParameterMap/default/valueModel/listenerList/javax.swing.event.EventListenerList/javax.swing.JSlider-ModelListener/outer-class/java.awt.Component/javax.swing.JComponent-EnableSerializationFocusListener
cause-exception : java.lang.reflect.InvocationTargetException
-------------------------------
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:75)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter.unmarshal(SerializableConverter.java:360)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:82)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:60)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:53)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.defaultReadObject(SerializableConverter.java:330)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter.unmarshal(SerializableConverter.java:363)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.defaultReadObject(SerializableConverter.java:330)
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.defaultReadObject(CustomObjectInputStream.java:62)
at music.MorphMusicGenerator.readObject(MorphMusicGenerator.java:491)
... 49 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:71)
... 76 more
Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call javax.swing.event.EventListenerList.readObject()
---- Debugging information ----
required-type : ren.gui.components.LJSlider
cause-message : null
class : javax.swing.DefaultBoundedRangeModel
message : Could not call javax.swing.event.EventListenerList.readObject()
line number : 25585
path : /music.MorphMusicGenerator-array/music.MorphMusicGenerator/music.MorphMusicGenerator/default/cuedMG/music.MusicGenerator/default/lscore/lparts/music.LPart/tc/first/sv/ren.gui.ParameterMap/default/valueModel/listenerList/javax.swing.event.EventListenerList/javax.swing.JSlider-ModelListener/outer-class/java.awt.Component/javax.swing.JComponent-EnableSerializationFocusListener
cause-exception : java.lang.reflect.InvocationTargetException
-------------------------------
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:75)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter.unmarshal(SerializableConverter.java:360)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.defaultReadObject(SerializableConverter.java:330)
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.defaultReadObject(CustomObjectInputStream.java:62)
at ren.gui.ParameterMap.readObject(ParameterMap.java:276)
... 81 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:71)
... 90 more
Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call ren.gui.components.LJSlider.readObject()
---- Debugging information ----
required-type : ren.gui.components.LJSlider
cause-message : null
class : javax.swing.JSlider$ModelListener
message : Could not call ren.gui.components.LJSlider.readObject()
line number : 25585
path : /music.MorphMusicGenerator-array/music.MorphMusicGenerator/music.MorphMusicGenerator/default/cuedMG/music.MusicGenerator/default/lscore/lparts/music.LPart/tc/first/sv/ren.gui.ParameterMap/default/valueModel/listenerList/javax.swing.event.EventListenerList/javax.swing.JSlider-ModelListener/outer-class/java.awt.Component/javax.swing.JComponent-EnableSerializationFocusListener
cause-exception : java.lang.reflect.InvocationTargetException
-------------------------------
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:75)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter.unmarshal(SerializableConverter.java:360)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:100)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:38)
at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:39)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.readFromStream(SerializableConverter.java:259)
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.readObjectOverride(CustomObjectInputStream.java:66)
at java.io.ObjectInputStream.readObject(Unknown Source)
at javax.swing.event.EventListenerList.readObject(Unknown Source)
... 95 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:71)
... 105 more
Caused by: com.thoughtworks.xstream.alias.CannotResolveClassException: javax.swing.JComponent$EnableSerializationFocusListener : javax.swing.JComponent$EnableSerializationFocusListener
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:35)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.XmlFriendlyMapper.realClass(XmlFriendlyMapper.java:44)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.AliasingMapper.realClass(AliasingMapper.java:49)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:46)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:52)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:18)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:28)
at com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.readFromStream(SerializableConverter.java:258)
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.readObjectOverride(CustomObjectInputStream.java:66)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.awt.Component.readObject(Unknown Source)
... 110 more
The relevant bit of this (monster) stack trace is:
Caused by: com.thoughtworks.xstream.alias.CannotResolveClassException: javax.swing.JComponent$EnableSerializationFocusListener
The strange thing is that javax.swing.JComponent$EnableSerializationFocusListener does not exist in JDK1.5 but it used to in JDK1.4.
This suggests that JSlider was serialized with 1.4 and then deserialized in 1.5. It looks like a serialization incompatability.
I shall investigate further.