This is not a bug of i18n transformer.

If you see, the problem comes from the
org.xml.sax.helpers.AttributesImpl.removeAttribute(AttributesImpl.java:439).
This is known bug in Xerces and it was fixed in latest versions. So, there
are two ways of solving this problem:
        - upgrade to a newer version of Xerces if possible (this is the best
solution)
        - hack i18n transformer and comment out the 'removeAttribute()' call
from translateAttributes()

(Reminder for myself: Create a FAQ entry on this topic.)
--
Konstantin Piroumian 
[EMAIL PROTECTED]


> -----Original Message-----
> From: KOZLOV Roman [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, August 14, 2002 11:10 AM
> To: Cocoon users mail list
> Subject: i18n:attr processing problem (ArrayIndexOutOfBoundsException)
> 
> 
> Hi,
> 
> It seems that there is a bug in the i18n transformer.
> 1. Configuration: JDK1.4, Cocoon 2.0.3, Tomcat 4.0.4
> 2. Bug description:
> - I've pipeline like xml -> i18n transformer -> serializer;
> - XML source contains an element like
>     <input i18n:attr="value" value="somekey" type="reset"/>
> Note: order of attributes is significant.
> - Such a pipeline crashes with the
> java.lang.ArrayIndexOutOfBoundsException :
> 
> Original exception : java.lang.ArrayIndexOutOfBoundsException
> at java.lang.System.arraycopy(Native Method)
> at
> org.xml.sax.helpers.AttributesImpl.removeAttribute(AttributesI
> mpl.java:439)
> 
> at
> org.apache.cocoon.transformation.I18nTransformer.translateAttr
> ibutes(I18nTransformer.java:1146)
> 
> at
> org.apache.cocoon.transformation.I18nTransformer.startElement(
> I18nTransformer.java:868)
> 
> . . .
> 
> 3. The same problem is occured when an element with i18n:attr 
> is created
> during xsl transformation, but with reversing order of attributes, for
> example:
>     <input type="reset" value="somekey" i18n:attr="value"/>
> because after xsl transformation attributes in its result are appeared
> in reversed order
> 
> 4. WORKAROUND: for XML (first case) - set i18n:attr as the last
> attribute of an element;
> for XSL (second case) - set i18n:attr as the first attribute of an
> element.
> 
> Best regards,
>         Roman
> 
> 
> 
> 
> ---------------------------------------------------------------------
> Please check that your question  has not already been answered in the
> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
> 
> To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
> For additional commands, e-mail:   <[EMAIL PROTECTED]>
> 

---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

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

Reply via email to