Hi,

please raise a new Jira issue for this, and attach all required files so
that we can replay this issue.

Werner

darrickc wrote:
> Using Castor 1.2 I'm trying to unmarshal an EnumMap and I'm getting an
> exception with the following message:
> org.exolab.castor.xml.MarshalException: argument type mismatch{File: [not
> available]; line: 2; column: 342}
> 
> I'm trying to unmarshal this class:
> public class UserPartitionRights
> {     
>       private EnumMap<Rights, Boolean> rights;
>       
>       public UserPartitionRights() {}
>       
>       public EnumMap<Rights, Boolean> getRights()
>       {
>               return rights;
>       }
>       public void setRights(EnumMap<Rights, Boolean> newRights)
>       {
>               rights = newRights;
>       }
> }
> 
> Where Rights is defined as:
> public enum Rights 
> {
>       SeeJobs(ResourceType.Job), DeleteJobs(ResourceType.Job), 
>       ChangeJobStatus(ResourceType.Job), ChangeJobSets(ResourceType.Job);
>                       
>       public final ResourceType resourceType;
>       
>       Rights(ResourceType type)
>       {
>               resourceType = type;
>       }
>       
>       public static Rights fromValue(final String value) 
>       {
>         for (Rights c: Rights.values()) 
>         {
>             if (Rights.valueOf( value ) == c ) 
>             {
>                 return c;
>             }
>         }
>         throw new IllegalArgumentException(value);
>     }
> };
> 
> The Mapping file looks like:
> <class name="com.rocsoft.messaging.qdirect.UserPartitionRights"
> auto-complete="true">  
>     <field name="rights" collection="map">
>               <bind-xml name="rights">
>                       <class name="org.exolab.castor.mapping.MapItem">
>                               <field name="key" 
> type="com.rocsoft.messaging.qdirect.Rights">
>                                       <bind-xml name="Right" 
> node="attribute"/>
>                               </field>
>                               <field name="value" type="boolean">
>                                       <bind-xml name="onOff" node="element"/>
>                               </field>
>                       </class>
>               </bind-xml>
>       </field>
> </class>
> 
> The fromValue is getting called and I am returning the correct enum value,
> after that it throws the exception. Marshaling works fine. RecourceType is
> another enum, not sure if that matters or not.
> 
> Thanks in advance!

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to