Can you make a JUnit test for that failing?

On Fri, Sep 19, 2014 at 6:32 AM, Petr Adamec <petr.ada...@wincor-nixdorf.cz>
wrote:

>
>  Good morning,
> I have a problem with convert from xml to data (unmarshall) when I use xml
> which has unknown tags. Xstream write me Exception in thread "main"
> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException:
> No such field.
> I was looking for solution for my problem on internet. I find some it but
> all of them do not working on my case.
>
> I override method wrapMapper but it still no working.
>
> XStream xstream = new XStream() {
>
>             // to enable ignoring of unknown elements
>
>             @Override
>
>             protected MapperWrapper wrapMapper(MapperWrapper next) {
>
>                 return new MapperWrapper(next) {
>
>                     @Override
>
>                     public boolean shouldSerializeMember(Class definedIn, 
> String fieldName) {
>
>                         if (definedIn == Object.class) {
>
>                             try {
>
>                                 return this.realClass(fieldName) != null;
>
>                             } catch (Exception e) {
>
>                                 return false;
>
>                             }
>
>                         }
>
>                         return super.shouldSerializeMember(definedIn, 
> fieldName);
>
>                     }
>
>                 };
>
>             }
>
>         };
>
>
>
> Is it maybe because I have a collection at class. But every options which
> I try not works.
>
> My class which I need convert to/from  is
>
> public class Configurations implements Serializable{
>
>     private static final long serialVersionUID = 4392719277296957995L;
>
>     private List<Class<? extends Updatable>> tableNames;
>
>     private Map<Class<? extends Updatable>, List<? extends Updatable>> tables;
>
>     ...
>
>     }
>
>
> Updatable is only interface. I need  convert to/from xml every class which
> implements this interface.
>
> In normal case, when I has right xml (get from marshell data) it is ok. I
> can convert data to this xml and xml back to data.
>
> <mypackage.Configurations>
>
>   <tableNames>
>
>     <java-class>mypackage.configuration.MyClass</java-class>
>
>   </tableNames>
>
>   <tables>
>
>     <entry>
>
>       <java-class>mypackage.configuration.MyClass</java-class>
>
>       <list>
>
>         <mypackage.configuration.MyClass>
>
>           <id>0</id>
>
>           <created>2014-09-19 08:49:34.649 UTC</created>
>
>           <active>true</active>
>
>         </mypackage.configuration.MyClass>
>
>       </list>
>
>     </entry>
>
>   </tables>
>
> </mypackage.Configurations>
>
>
> But when I change xml (forr example add new tag newTag)
>
> <mypackage.Configurations>
>
>   <tableNames>
>
>     <java-class>mypackage.configuration.MyClass</java-class>
>
>   </tableNames>
>
>   <tables>
>
>     <entry>
>
>       <java-class>mypackage.configuration.MyClass</java-class>
>
>       <list>
>
>         <mypackage.configuration.MyClass>
>
>           <id>0</id>
>
>           <created>2014-09-19 08:49:34.649 UTC</created>
>
>           <active>true</active>
>
>           <newTag>exam</newTag>
>
>         </mypackage.configuration.MyClass>
>
>       </list>
>
>     </entry>
>
>   </tables>
>
> </mypackage.Configurations>
>
>
> Xstream ends with error AbstractReflectionConverter$UnknownFieldException:
> No such field. Is exists solution how can I solve this problem? I need
> convert to data (class) and if xml has unknown tags which does not exist at
> class, logg some message and skip tag.
>
> Thank you for your answer.
>
>
> Best Regards
> Petr
>
>
>
>
>
>

Reply via email to