[ 
http://issues.apache.org/jira/browse/COCOON-1689?page=comments#action_12358249 
] 

Sylvain Wallez commented on COCOON-1689:
----------------------------------------

We have no indication of the JXPath problem that led to avoiding the use of 
jxpathContext.removePath(). Giacomo, as the author of this change, can you give 
us more indications on what motivated it ?

> Cannot save a cform containing a multivalued field with more than 9 values !
> ----------------------------------------------------------------------------
>
>          Key: COCOON-1689
>          URL: http://issues.apache.org/jira/browse/COCOON-1689
>      Project: Cocoon
>         Type: Bug
>   Components: Blocks: Forms
>     Versions: 2.1.8, 2.1.9-dev (current SVN), 2.2-dev (Current SVN)
>     Reporter: Philippe Gassmann
>     Priority: Minor

>
> An UnsupportedOperationException occurs when trying to save a form containing 
> a multivalued field with more that 9 values. Here is the explanation : 
> here is the incriminated code in MultiValueJXPathBinding.java:doSave(): 
> Iterator rowPointers = multiValueContext.iteratePointers(this.rowPath);
>         List l = new ArrayList();
>         while( rowPointers.hasNext() )
>         {
>             Pointer p = (Pointer)rowPointers.next();
>             l.add(p.asPath());
>         }
>         Collections.sort(l);
>         for( int i = l.size()-1; i >= 0; i-- )
>         {
>             multiValueContext.removePath((String)l.get(i));
>         }
> This code is wrong : 
> The p.asPath returns something like "/doc/node[x]" 
> if the iterator contains more than 9 values x will be written in TWO 
> characters so, the result of Collections.sort(l) return for 10 values : 
> /doc/node[10]
> /doc/node[1]
> /doc/node[2]
> /doc/node[3]
> /doc/node[4]
> /doc/node[5]
> /doc/node[6]
> /doc/node[7]
> /doc/node[8]
> /doc/node[9]
> so the first node to be deleted is 9. the last is 10. but when trying to 
> delete the 10th node it does not exist anymore !
> A UnsupportedOperationException is thrown.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to