Thanks.
I removed that converter alltogether.
However, I am still getting the following (and this is even as I both save
and load the session using ver 1.4.2 so it is not a cross version issue):
com.thoughtworks.xstream.converters.ConversionException: Could not call
edu.tau.compbio.util.OrderedHash.readObject() :
edu.tau.compbio.io.IOMgr_$Constraints
---- Debugging information ----
message : Could not call
edu.tau.compbio.util.OrderedHash.readObject()
cause-exception :
com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : edu.tau.compbio.io.IOMgr_$Constraints
class : edu.tau.compbio.util.OrderedHash
required-type : edu.tau.compbio.util.OrderedHash
converter-type :
com.thoughtworks.xstream.converters.reflection.SerializableConverter
path :
/expander.ds.MainData/studyToSolsMap/entry/list/expander.ds.ClusteringSol/opInput/__inputDef/hashtable/edu.tau.compbio.io.IOMgr_-Constraints
line number : 600
class[1] : edu.tau.compbio.io.IOMgr
converter-type[1] :
com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : expander.ds.ClusteringSol
converter-type[2] : expander.io.converters.ClustSolConverter
class[3] : java.util.ArrayList
converter-type[3] :
com.thoughtworks.xstream.converters.collections.CollectionConverter
class[4] : java.util.Hashtable
converter-type[4] :
com.thoughtworks.xstream.converters.collections.MapConverter
class[5] : expander.ds.MainData
version : null
-------------------------------
at
com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:119)
at
com.thoughtworks.xstream.converters.reflection.SerializableConverter.doUnmarshal(SerializableConverter.java:411)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at
expander.io.converters.ClustSolConverter.unmarshal(ClustSolConverter.java:35)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at
com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:89)
at
com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:77)
at
com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:71)
at
com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:66)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at
com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:912)
at expander.Engine.loadSession(Engine.java:4178)
at expander.MainFrame$98.actionPerformed(MainFrame.java:2555)
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.plaf.basic.BasicButtonListener.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.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at expander.MainFrame.onActionFileLoadSession(MainFrame.java:2584)
at expander.MainFrame.access$17(MainFrame.java:2535)
at expander.MainFrame$10.actionPerformed(MainFrame.java:446)
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.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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: com.thoughtworks.xstream.mapper.CannotResolveClassException:
edu.tau.compbio.io.IOMgr_$Constraints
at
com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.XStream11XmlFriendlyMapper.realClass(XStream11XmlFriendlyMapper.java:38)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at
com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at
com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at
com.thoughtworks.xstream.converters.reflection.SerializableConverter$2.readFromStream(SerializableConverter.java:296)
at
com.thoughtworks.xstream.core.util.CustomObjectInputStream.readObjectOverride(CustomObjectInputStream.java:104)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.Hashtable.readObject(Unknown Source)
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:113)
... 110 more
Failed loading session from file:
C:\Adi\work\Expander\Ver6\session_onlyClust.zip
Details: com.thoughtworks.xstream.converters.ConversionException: Could not
call edu.tau.compbio.util.OrderedHash.readObject() :
edu.tau.compbio.io.IOMgr_$Constraints
---- Debugging information ----
message : Could not call
edu.tau.compbio.util.OrderedHash.readObject()
cause-exception :
com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : edu.tau.compbio.io.IOMgr_$Constraints
class : edu.tau.compbio.util.OrderedHash
required-type : edu.tau.compbio.util.OrderedHash
converter-type :
com.thoughtworks.xstream.converters.reflection.SerializableConverter
path :
/expander.ds.MainData/studyToSolsMap/entry/list/expander.ds.ClusteringSol/opInput/__inputDef/hashtable/edu.tau.compbio.io.IOMgr_-Constraints
line number : 600
class[1] : edu.tau.compbio.io.IOMgr
converter-type[1] :
com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : expander.ds.ClusteringSol
converter-type[2] : expander.io.converters.ClustSolConverter
class[3] : java.util.ArrayList
converter-type[3] :
com.thoughtworks.xstream.converters.collections.CollectionConverter
class[4] : java.util.Hashtable
converter-type[4] :
com.thoughtworks.xstream.converters.collections.MapConverter
class[5] : expander.ds.MainData
version : null
-------------------------------
Adi
Jörg Schaible-3 wrote:
>
> Hi Adi,
>
> adimaron wrote:
>
>>
>> Do you think that the problem is with
>> expander.io.converters.EnrichmentSolConverter.unmarshal()?
>>
>> It is a method that was generated to support some DS changes in prev
>> versions.
>> Should I try to get rid of this converter?
>>
>> I do not know if this helps but the code of the method is
>>
>> public Object unmarshal(HierarchicalStreamReader reader,
>> UnmarshallingContext arg1) {
>> if (! reader.hasMoreChildren())
>> return null;
>>
>> Class cType = arg1.getRequiredType();
>> reader.moveDown();
>> try
>> {
>> String nodeName = reader.getNodeName();
>> boolean prevVer = false;
>> float[][] rawPVals=null, relativeFreqs=null;
>> double minRawPVal=2;
>> if(nodeName.equals("rawPVals")){ //funcAnal prev version{
>> prevVer = true;
>> rawPVals = (float[][])arg1.convertAnother(arg1.currentObject(),
>> float[][].class);
>> }else if(nodeName.equals("relativeFreqs")){//PromAnalSol prevVersion
>> prevVer = true;
>> relativeFreqs = (float[][])arg1.convertAnother(arg1.currentObject(),
>> float[][].class);
>> }
>
> ================== %< ==============
>
>> if(!prevVer){//default converter can do the work
>> reader.moveUp();
>> Converter defaultConverter =
>> conLookup.lookupConverterForType(GeneralSolution.class);
>> Object res = defaultConverter.unmarshal(reader, arg1);
>> return res;//defaultConverter.unmarshal(reader, arg1);
>
> ================== %< ==============
>
> This snippet that cannot really work. When a converter is invoked, it
> expects the parser to be at the current tag, because it might have to read
> (system) attributes.
>
> Now, remember that you're reading from a stream model. The code moves in
> the
> stream forward from the start tag to the tags children and then suddenly
> expects to handle the original start tag. Actually it was pure incidence,
> that it worked with XStream 1.1.2, but this is simply wrong! I am quite
> sure, line 72 from the stack trace is here ...
>
>
>> }
>> Hashtable hitsHash=null, pwmLengthHash=null;
>> String seqsFilePath=null ;
>> reader.moveUp();
>> reader.moveDown();
>> String next = reader.getNodeName();
>> if(cType.equals(FuncAnalSol.class)){
>> minRawPVal = Double.parseDouble(reader.getValue());
>> reader.moveUp();
>> reader.moveDown();
>> }
>> else//PromoterAnalSol
>> {
>> hitsHash = (Hashtable)arg1.convertAnother(arg1.currentObject(),
>> Hashtable.class);
>> reader.moveUp();
>> reader.moveDown();
>> pwmLengthHash = (Hashtable)arg1.convertAnother(arg1.currentObject(),
>> Hashtable.class);
>> reader.moveUp();
>> reader.moveDown();
>> seqsFilePath = (String)arg1.convertAnother(arg1.currentObject(),
>> String.class);
>> reader.moveUp();
>> reader.moveDown();
>>
>> }
>> next = reader.getNodeName();
>>
>>
>> String[] catNames = (String[])arg1.convertAnother(arg1.currentObject(),
>> String[].class);
>> reader.moveUp();
>> reader.moveDown();
>> if(reader.getNodeName().equals("coverage")){
>> reader.moveUp();
>> reader.moveDown();
>> }
>> float[][] freqs = (float[][])arg1.convertAnother(arg1.currentObject(),
>> float[][].class);
>> reader.moveUp();
>> reader.moveDown();
>> float[][] pVals = (float[][])arg1.convertAnother(arg1.currentObject(),
>> float[][].class);
>> reader.moveUp();
>> reader.moveDown();
>> String[][][][] enrichmntGenes =
>> (String[][][][])arg1.convertAnother(arg1.currentObject(),
>> String[][][][].class);
>> reader.moveUp();
>> reader.moveDown();
>> reader.moveUp();
>> reader.moveDown();
>> double threshPVal = Double.parseDouble(reader.getValue());
>> reader.moveUp();
>> reader.moveDown();
>> if(relativeFreqs == null)
>> relativeFreqs = freqs;
>> ArrayList<EnrichmentResult> enrichments =
>> generateEnrichmentsList(catNames/*,coverage*/, relativeFreqs,
>> pVals, rawPVals,enrichmntGenes, threshPVal );
>>
>> String baseSetsKey = reader.getValue();
>> reader.moveUp();
>> reader.moveDown();
>> String studyID = reader.getValue();
>> reader.moveUp();
>> reader.moveDown();
>> // double minPVal = Double.parseDouble(reader.getValue());
>> reader.moveUp();
>> reader.moveDown();
>> ArrayList opInfo = (ArrayList)
>> arg1.convertAnother(arg1.currentObject(),
>> ArrayList.class);
>> reader.moveUp();
>> reader.moveDown();
>> reader.moveUp();
>> reader.moveDown();
>> String solName = reader.getValue();
>> reader.moveUp();
>> reader.moveDown();
>> IOStorage opInput = (IOStorage)arg1.convertAnother(arg1.currentObject(),
>> IOMgr.class);
>> reader.moveUp();
>> reader.moveDown();
>> String key = reader.getValue();
>> reader.moveUp();
>> EnrichmentSol res=null;
>> if(cType.equals(FuncAnalSol.class))
>> res = new FuncAnalSol(solName, opInfo, opInput, catNames,enrichments,
>> baseSetsKey,studyID,baseSetsDetector);
>> else if(cType.equals(PromoterAnalSol.class)){
>> res = new PromoterAnalSol(solName, opInfo, opInput,
>> catNames,enrichments, baseSetsKey,studyID,baseSetsDetector, hitsHash,
>> pwmLengthHash);
>> ((PromoterAnalSol)res).setSeqsFilePath(seqsFilePath);
>>
>> }
>> if(res!=null)
>> res.setKey(key);
>> return res;
>> }
>> catch(Exception e){
>> e.printStackTrace();
>> return null;
>> }
>>
>>
>> }
>>
>> If this is not what you meant then which method are you referring to?
>
> Yes, see inline comment.
>
> Chrres,
> Jörg
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
> http://xircles.codehaus.org/manage_email
>
>
>
>
--
View this message in context:
http://old.nabble.com/ConversionException-when-using-XStream-1.4.2-caused-by-CannotResolveClassException-tp34199308p34213961.html
Sent from the xstream - user mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email