Marco Rolappe wrote:

these multi value problems seem to stem from the following code (which is not present in 2.1.6) in MultiValueJXPathBinding.doSave:

...
multiValueContext.setFactory( new AbstractFactory() {
public boolean createObject(JXPathContext context, Pointer pointer,
Object parent, String name, int index) {
final Object o = context.getValue(name);
if( Collection.class.isAssignableFrom( o.getClass() ) ) {
((Collection)context.getValue(name)).add(null);
} else if( o.getClass().isArray() ) {
// not yet supported
return false;
} else {
return false;
}
return true;
}
});
...


after removing that code, the problem is gone. the NPE is thrown because o can be null.


Ok, got it: we must merge this with o.a.c.util.JXPath.DOMFactory which is set as the factory at the start of the binding tree traversal.

That will allow to bind to collections *and* XML documents!

Sylvain

--
Sylvain Wallez                        Anyware Technologies
http://apache.org/~sylvain            http://anyware-tech.com
Apache Software Foundation Member     Research & Technology Director



Reply via email to