Chris Harris wrote:
Hi all,

We have a requirement to encrypt large xml documents and our experiencing the following error:

Caused by: java.nio.BufferOverflowException

at java.nio.charset.CoderResult.throwException(CoderResult.java:259)

at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:340)

            at java.lang.StringCoding.encode(StringCoding.java:374)

            at java.lang.StringCoding.encode(StringCoding.java:380)

            at java.lang.String.getBytes(String.java:590)

at org.apache.xml.security.encryption.XMLCipher.encryptData(Unknown Source)

at org.apache.xml.security.encryption.XMLCipher.encryptElementContent(Unknown Source)

at org.apache.xml.security.encryption.XMLCipher.doFinal(Unknown Source)

at org.apache.ws.security.message.WSSecEncrypt.doEncryption(WSSecEncrypt.java:455)

After doing some research, I discovered that this is actually being caused by a bug in the JVM:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4949631

The sun bug log contains a number of workarounds however to get around this issue the XMLCipher class would need to change the String before it calls getBytes. I have attached a patch version of XMLCipher along with a String utility class.

Is there any chance of getting this into the next release of the security library?

Yes, I don't think it should be a problem. Do you mind opening a bug (and attach your patch) so we can track this at: http://issues.apache.org/bugzilla/

And thanks for the patch!

--Sean

Reply via email to