-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all

I've tried to get my head around the JXPathContext.removeAll() not working as expected. I've written a TestCase:

    public void testRemoveAllFromCollection() {
        final Map map = new HashMap();
        final Collection list = new ArrayList();
        for(int i = 0; i < 20; i++) {
            list.add("" + i);
        }
        map.put( "list", list);
        JXPathContext context = JXPathContext.newContext(null, map);
        context.removeAll( "list" );
        assertEquals("not all items removed", 0, list.size() );
    }

After the test the list will still have 19 entries with the last one removed.

While this:


    public void testRemoveAllFromCollectionIterated() {
        final Map map = new HashMap();
        final Collection list = new ArrayList();
        for(int i = 0; i < 20; i++) {
            list.add("" + i);
        }
        map.put( "list", list);
        JXPathContext context = JXPathContext.newContext(null, map);
        for(int i = 0; i < 20; i++) {
            context.removePath("list[1]");
        }
        assertEquals("not all items removed", 0, list.size() );
    }

works as expected.

I've looked around in the code but am hopelessly lost what the issue could be to produce a patch. The only thing I've covered is that in DynamicPropertyPointer.remove() at #251 it always removes the last entry in the collection.

I will file a bug in Bugzilla for it.

Ciao

Giacomo

- -- Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDhHHRLNdJvZjjVZARAtZxAKCJmx4oghf/xoat59pQYQT9dfTbxwCgsoC0
l29NM0u5F46SVKBsQV0ZsG8=
=2JMv
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to