Hi Roland, Roland Roberts wrote:
> DefaultConverterLookup method lookupConverterForType(Class type) throws > a runtime exception. This was totally unexpected since I don't see it in > the docs. How exactly is one supposed to /safely/ look up converters? > > Why do I need to do this you ask.... > > I have a map from name to object. Before calling toString() on the > object, I want to see if there is a converter for the object's class and > if so, call it. And yes, there is a reason for using that type of map > which is what has evolved (or maybe devolved) after several rounds of > factoring in the code. The idea is, that a ConverterLookup actually *can* handle all types. Therefore XStream registers normally a ReflectionConverter with lowest priority that acts as catch all. In your case you will have to register an equivalent for null i.e.: class NoConverter implements Converter { static Converter INSTANCE = new NoConverter(); boolean canConvert(Class type) { return true; } void marshal(...) { throw new ConverterException(); } Object unmarshal(...) { throw new ConverterException(); } } lookup.registerConverter(NoConverter.INSTANCE, Integer.MAX_VALUE); Converter converter = lookup.lookupConverterForType(Void.class); if (converter != NoConverter.INSTANCE) { // ... } - Jörg --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email