Author: jochen
Date: Tue Apr 11 07:25:41 2006
New Revision: 393227
URL: http://svn.apache.org/viewcvs?rev=393227&view=rev
Log:
The Base64 encoder doesn't accept buffers of length 0. Such a buffer
was passed, if the byte array to encode has itself length 0.
Modified:
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/serializer/ByteArraySerializer.java
webservices/xmlrpc/trunk/src/changes/changes.xml
Modified:
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/serializer/ByteArraySerializer.java
URL:
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/serializer/ByteArraySerializer.java?rev=393227&r1=393226&r2=393227&view=diff
==============================================================================
---
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/serializer/ByteArraySerializer.java
(original)
+++
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/serializer/ByteArraySerializer.java
Tue Apr 11 07:25:41 2006
@@ -35,15 +35,17 @@
pHandler.startElement("", VALUE_TAG, VALUE_TAG,
ZERO_ATTRIBUTES);
pHandler.startElement("", BASE_64_TAG, BASE_64_TAG,
ZERO_ATTRIBUTES);
byte[] buffer = (byte[]) pObject;
- char[] charBuffer = new char[buffer.length >= 1024 ? 1024 :
((buffer.length+3)/4)*4];
- Encoder encoder = new Base64.SAXEncoder(charBuffer, 0, null,
pHandler);
- try {
- encoder.write(buffer, 0, buffer.length);
- encoder.flush();
- } catch (Base64.SAXIOException e) {
- throw e.getSAXException();
- } catch (IOException e) {
- throw new SAXException(e);
+ if (buffer.length > 0) {
+ char[] charBuffer = new char[buffer.length >= 1024 ?
1024 : ((buffer.length+3)/4)*4];
+ Encoder encoder = new Base64.SAXEncoder(charBuffer, 0,
null, pHandler);
+ try {
+ encoder.write(buffer, 0, buffer.length);
+ encoder.flush();
+ } catch (Base64.SAXIOException e) {
+ throw e.getSAXException();
+ } catch (IOException e) {
+ throw new SAXException(e);
+ }
}
pHandler.endElement("", BASE_64_TAG, BASE_64_TAG);
pHandler.endElement("", VALUE_TAG, VALUE_TAG);
Modified: webservices/xmlrpc/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/src/changes/changes.xml?rev=393227&r1=393226&r2=393227&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/src/changes/changes.xml (original)
+++ webservices/xmlrpc/trunk/src/changes/changes.xml Tue Apr 11 07:25:41 2006
@@ -32,6 +32,11 @@
The project is now splitted into three jar files:
common, client, and server.
</action>
+ <action dev="jochen" type="fix" due-to="Brad Karp"
+ due-to-email="[EMAIL PROTECTED]">
+ The Base64 encoder doesn't accept buffers of length 0. Such a buffer
+ was passed, if the byte array to encode has itself length 0.
+ </action>
</release>
<release version="3.0a1" date="17-Feb-2005">
<action dev="jochen" type="enhancement">