Details
- 
        Type: Bug Bug
- 
        Status: Closed Closed
- 
            Priority: Major Major
- 
            Resolution: Fixed
- 
            Affects Version/s: 1.3.1
- 
            Fix Version/s: 1.4
- 
            Component/s: Converters
- 
            Labels:None
- 
                        JDK version and platform:java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode)
Description
We're getting following error while trying to unmarshal XML which was successfully marshalled
Code segment
============
private Map deserialize2Map(String serializedStream) {
    if (serializedStream == null) 
XStream xstream = new XStream();
try
{ xstream.omitField(Class.forName("org.springframework.webflow.execution.repository.impl.FlowExecutionSnapshotGroup"), "snapshots"); }catch (ClassNotFoundException e)
{ e.printStackTrace(); }return (Map) xstream.fromXML(serializedStream);
}
Results in the same exception even after directing as mentioned below for the reported field to omit from the deserialization
xstream.omitField(Class.forName("org.springframework.webflow.execution.repository.impl.FlowExecutionSnapshotGroup"), "snapshots");
Any help would be greatly appreciated
========= stack trace starts from here ===============================================
com.thoughtworks.xstream.converters.ConversionException: Cannot construct class java.lang.Class : Class com.thoughtworks.xstream.converters.reflection.ExternalizableConverter can not access a member of class org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot with modifiers "public"
---- Debugging information ----
message             : Cannot construct class java.lang.Class
cause-exception     : java.lang.IllegalAccessException
cause-message       : Class com.thoughtworks.xstream.converters.reflection.ExternalizableConverter can not access a member of class org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot with modifiers "public"
class               : java.util.HashMap
required-type       : org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot
path                : /map/entry[3]/org.springframework.webflow.conversation.impl.ConversationContainer/conversations/org.springframework.webflow.conversation.impl.ContainedConversation/attributes/entry[3]/org.springframework.webflow.execution.repository.impl.SimpleFlowExecutionSnapshotGroup/snapshots/entry/org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot
line number         : 76
-------------------------------
========= stack trace ends here ===============================================
=========== Input XML for the above unmarshal routine starts here =====================
<map>
  <entry>
    <string>org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE</string>
    <locale>en_US</locale>
  </entry>
  <entry>
    <string>org.jsecurity.web.session.WebSession_INET_ADDRESS_SESSION_KEY</string>
    <java.net.Inet4Address resolves-to="java.net.InetAddress">
      <address>2130706433</address>
      <family>2</family>
    </java.net.Inet4Address>
  </entry>
  <entry>
    <string>webflowConversationContainer</string>
    <org.springframework.webflow.conversation.impl.ConversationContainer>
      <maxConversations>5</maxConversations>
      <sessionKey>webflowConversationContainer</sessionKey>
      <conversations>
        <org.springframework.webflow.conversation.impl.ContainedConversation>
          <container reference="../../.."/>
          <id class="org.springframework.webflow.conversation.impl.SimpleConversationId">
            <id class="int">1</id>
          </id>
          <lock class="org.springframework.webflow.conversation.impl.JdkConcurrentConversationLock">
            <lock class="java.util.concurrent.locks.ReentrantLock">
              <sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
                <java.util.concurrent.locks.AbstractQueuedSynchronizer>
                  <default>
                    <state>0</state>
                  </default>
                </java.util.concurrent.locks.AbstractQueuedSynchronizer>
                <java.util.concurrent.locks.ReentrantLock_-Sync>
                  <default/>
                </java.util.concurrent.locks.ReentrantLock_-Sync>
              </sync>
            </lock>
            <timeoutSeconds>30</timeoutSeconds>
          </lock>
          <attributes>
            <entry>
              <string>scope</string>
              <org.springframework.webflow.core.collection.LocalAttributeMap serialization="custom">
                <org.springframework.webflow.core.collection.LocalAttributeMap>
                  <default>
                    <attributes>
                      <entry>
                        <string>flashScope</string>
                        <org.springframework.webflow.core.collection.LocalAttributeMap serialization="custom">
                          <org.springframework.webflow.core.collection.LocalAttributeMap>
                            <default>
                              <attributes>
                                <entry>
                                  <string>messagesMemento</string>
                                  <map/>
                                </entry>
                              </attributes>
                            </default>
                          </org.springframework.webflow.core.collection.LocalAttributeMap>
                        </org.springframework.webflow.core.collection.LocalAttributeMap>
                      </entry>
                    </attributes>
                  </default>
                </org.springframework.webflow.core.collection.LocalAttributeMap>
              </org.springframework.webflow.core.collection.LocalAttributeMap>
            </entry>
            <entry>
              <string>description</string>
              <null/>
            </entry>
            <entry>
              <string>flowExecutionSnapshotGroup</string>
              <org.springframework.webflow.execution.repository.impl.SimpleFlowExecutionSnapshotGroup>
                <snapshots>
                  <entry>
                    <int>1</int>
                    <org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot>
                      <int>555</int>
                      <byte-array>H4sIAAAAAAAAAKVSPWgUQRR+ez/JJTnwh2BhIWIhiLh30ZCsSjCH5vBk7wI5/EEw3uzeu9tN9nbG
mcnNBkHL2Ah2gmBroxaCjaCIaGMpVtpYphCxsbD07XFiICqID/YxfPvNft/79j36Ankl4TiXXVsJ
GcbdjmQ9NFyu2ga9TsSNjXE3jNEOeyKyqwQsJOiv6ZDHNUL6M0c+PHj2aW8RIBHGsuhjkyusz2xi
RLYbxqvYdkOli4eaV861bh3IDng5AEips/+i20Slhqrf7jXmNpafbw5UNeyIOFEX5RJ2SQqlhqIK
uHFTlDASmvubkM8lUosi9NOxbJf7LKpoLUNvTWOdiZutty8uzd/+nAXLhXH2840iZTcdtpQOWyLi
yUSQ2K5fAZxlKiA8P/rx1es9rXdZyFRhPOKsXWW+5rIGYzqQSGajdiJOzUNaRVOgvpOenIaxfoim
6XOB6hrcgMKgT2xjQpJoGJXYQYmSEtktUKo0i9jH0zzWmGgyti9NIQg9lDHTw2S3pPr1zIXv7/NP
76b/SMLB35ArntKSnG+5tPFw4vCbza6VAesyjPgRV0ijAK2ChgKPrw4QDTnBV7ixQMNIvdI4X3Hp
0FhcqldckwEQ280t9IRer5Fz6aOgqKL7L68/vnPxSWawQB7sd5gz65S96aNl51i77E+Vp4an6Rmn
TAX/WX9MWlDUuZgS1TAZaC1OlErGGHudBZzTGvUSYiTJDwK5WD5aAwAA</byte-array>
                      <boolean>true</boolean>
                    </org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot>
                  </entry>
                </snapshots>
                <snapshotIds>
                  <int>1</int>
                </snapshotIds>
                <maxSnapshots>30</maxSnapshots>
              </org.springframework.webflow.execution.repository.impl.SimpleFlowExecutionSnapshotGroup>
            </entry>
            <entry>
              <string>caption</string>
              <null/>
            </entry>
            <entry>
              <string>name</string>
              <string>loginOrRegister</string>
            </entry>
          </attributes>
        </org.springframework.webflow.conversation.impl.ContainedConversation>
      </conversations>
      <conversationIdSequence>1</conversationIdSequence>
    </org.springframework.webflow.conversation.impl.ConversationContainer>
  </entry>
  <entry>
    <string>org.jsecurity.web.DefaultWebSecurityManager_PRINCIPALS_SESSION_KEY</string>
    <org.jsecurity.subject.SimplePrincipalCollection>
      <realmPrincipals class="linked-hash-map">
        <entry>
          <string>JsecDbRealm</string>
          <linked-hash-set>
            <string>admin</string>
          </linked-hash-set>
        </entry>
      </realmPrincipals>
    </org.jsecurity.subject.SimplePrincipalCollection>
  </entry>
  <entry>
    <string>next</string>
    <string>http://www.yahoo.com</string>
  </entry>
  <entry>
    <string>org.codehaus.groovy.grails.FLASH_SCOPE</string>
    <org.codehaus.groovy.grails.web.servlet.GrailsFlashScope>
      <current/>
      <next/>
    </org.codehaus.groovy.grails.web.servlet.GrailsFlashScope>
  </entry>
  <entry>
    <string>flow</string>
    <Flow>
      <id>1</id>
      <name>default</name>
      <flowController>sling</flowController>
      <flowAction>loginOrRegister</flowAction>
      <saContext>SLINGIT_PORTAL</saContext>
      <saPolicy>MAS</saPolicy>
      <notes>defaulf flow, english, us</notes>
      <emailValidationTemplate></emailValidationTemplate>
      <created class="sql-timestamp">2009-03-25 08:54:00.0</created>
      <locale>en_US</locale>
      <version>0</version>
      <wordPairs class="org.hibernate.collection.PersistentSet">
        <initialized>false</initialized>
        <owner class="Flow" reference="../.."/>
        <cachedSize>-1</cachedSize>
        <role>Flow.wordPairs</role>
        <key class="long">1</key>
        <dirty>false</dirty>
      </wordPairs>
    </Flow>
  </entry>
</map>
=========== Input XML for the above unmarshal routine starts here =====================

 
                            

t