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]>