You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by Daniel Rall <dl...@finemaltcoding.com> on 2002/02/21 19:04:12 UTC

Re: XML-RPC applet fix: removed sun.misc dependency

Jon cleared this up for us by replacing the infected code.

Daniel Rall <dl...@finemaltcoding.com> writes:

> Hey Raymond.  As soon as we get the Base64 class licensing issue
> cleared up with Kevin Kelley I can commit your changes.
>
> Raymond Penners <ra...@duologix.nl> writes:
>
>> Hi all,
>>
>> I am using your XML-RPC (1.0) in an applet. At first, things didn't
>> work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
>> sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
>> specific and does not work on all browsers. On my setup, things only
>> functioned correctly only using Netscape 4.x. Both IE, and Mozilla
>> failed.
>>
>> Other users also encountered this problem, with no solution offered:
>>
>> http://helma.org/archives/xmlrpc/2000-August/000164.html
>>
>> I easily fixed this by removing the dependency on sun.misc.BASE64* to
>> org.apache.xmlrpc.Base64. Now, it works across all browsers.
>>
>> Please let me know what you think of this patch. I've successfully
>> transferred binary data between a PHP XML-RPC server and an XML-RPC
>> applet (both ways).
>>
>> Regards,
>> -- 
>> Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
>> --- SimpleXmlRpcClient.java.orig	Thu Jan 31 14:08:24 2002
>> +++ SimpleXmlRpcClient.java	Thu Jan 31 14:09:17 2002
>> @@ -62,6 +62,7 @@
>>  import java.util.*;
>>  import java.text.*;
>>  import java.net.*;
>> +import org.apache.xmlrpc.Base64;
>>  
>>  
>>  /**
>> @@ -188,8 +189,7 @@
>>  	    writer.endElement ("dateTime.iso8601");
>>  	} else if (what instanceof byte[]) {
>>  	    writer.startElement ("base64");
>> -	    sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
>> -	    writer.write (encoder.encodeBuffer ((byte[]) what));
>> +	    writer.write (Base64.encode ((byte[]) what));
>>  	    writer.endElement ("base64");
>>  	} else if (what instanceof Vector) {
>>  	    writer.startElement ("array");
>> @@ -543,12 +543,7 @@
>>                      }
>>                      break;
>>                  case BASE64:
>> -                    sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder ();
>> -                    try {
>> -                        value = decoder.decodeBuffer (cdata);
>> -                    } catch (IOException x) {
>> -                        throw new RuntimeException ("Error decoding base64 tag: "+x.getMessage ());
>> -                    }
>> +                    value = Base64.decode (cdata.toCharArray());
>>                      break;
>>                  case STRING:
>>                      value = cdata;

Re: XML-RPC applet fix: removed sun.misc dependency

Posted by Jon Scott Stevens <jo...@latchkey.com>.
I didn't know about that problem.

Fixed in CVS now...

-jon


on 3/7/02 8:53 AM, "Martin Poeschl" <mp...@marmot.at> wrote:

> Daniel Rall wrote:
>> Jon cleared this up for us by replacing the infected code.
> 
> sure??
> 
> the patch is still not applied!
> patched my local version in the meantime ..
> 
> martin
> 
>> 
>> Daniel Rall <dl...@finemaltcoding.com> writes:
>> 
>> 
>>> Hey Raymond.  As soon as we get the Base64 class licensing issue
>>> cleared up with Kevin Kelley I can commit your changes.
>>> 
>>> Raymond Penners <ra...@duologix.nl> writes:
>>> 
>>> 
>>>> Hi all,
>>>> 
>>>> I am using your XML-RPC (1.0) in an applet. At first, things didn't
>>>> work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
>>>> sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
>>>> specific and does not work on all browsers. On my setup, things only
>>>> functioned correctly only using Netscape 4.x. Both IE, and Mozilla
>>>> failed.
>>>> 
>>>> Other users also encountered this problem, with no solution offered:
>>>> 
>>>> http://helma.org/archives/xmlrpc/2000-August/000164.html
>>>> 
>>>> I easily fixed this by removing the dependency on sun.misc.BASE64* to
>>>> org.apache.xmlrpc.Base64. Now, it works across all browsers.
>>>> 
>>>> Please let me know what you think of this patch. I've successfully
>>>> transferred binary data between a PHP XML-RPC server and an XML-RPC
>>>> applet (both ways).
>>>> 
>>>> Regards,
>>>> -- 
>>>> Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
>>>> --- SimpleXmlRpcClient.java.orig    Thu Jan 31 14:08:24 2002
>>>> +++ SimpleXmlRpcClient.java    Thu Jan 31 14:09:17 2002
>>>> @@ -62,6 +62,7 @@
>>>> import java.util.*;
>>>> import java.text.*;
>>>> import java.net.*;
>>>> +import org.apache.xmlrpc.Base64;
>>>> 
>>>> 
>>>> /**
>>>> @@ -188,8 +189,7 @@
>>>>    writer.endElement ("dateTime.iso8601");
>>>> } else if (what instanceof byte[]) {
>>>>    writer.startElement ("base64");
>>>> -        sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
>>>> -        writer.write (encoder.encodeBuffer ((byte[]) what));
>>>> +        writer.write (Base64.encode ((byte[]) what));
>>>>    writer.endElement ("base64");
>>>> } else if (what instanceof Vector) {
>>>>    writer.startElement ("array");
>>>> @@ -543,12 +543,7 @@
>>>>                     }
>>>>                     break;
>>>>                 case BASE64:
>>>> -                    sun.misc.BASE64Decoder decoder = new
>>>> sun.misc.BASE64Decoder ();
>>>> -                    try {
>>>> -                        value = decoder.decodeBuffer (cdata);
>>>> -                    } catch (IOException x) {
>>>> -                        throw new RuntimeException ("Error decoding base64
>>>> tag: "+x.getMessage ());
>>>> -                    }
>>>> +                    value = Base64.decode (cdata.toCharArray());
>>>>                     break;
>>>>                 case STRING:
>>>>                     value = cdata;
>>> 
>> 
> 
> 


Re: XML-RPC applet fix: removed sun.misc dependency

Posted by Jon Scott Stevens <jo...@latchkey.com>.
I didn't know about that problem.

Fixed in CVS now...

-jon


on 3/7/02 8:53 AM, "Martin Poeschl" <mp...@marmot.at> wrote:

> Daniel Rall wrote:
>> Jon cleared this up for us by replacing the infected code.
> 
> sure??
> 
> the patch is still not applied!
> patched my local version in the meantime ..
> 
> martin
> 
>> 
>> Daniel Rall <dl...@finemaltcoding.com> writes:
>> 
>> 
>>> Hey Raymond.  As soon as we get the Base64 class licensing issue
>>> cleared up with Kevin Kelley I can commit your changes.
>>> 
>>> Raymond Penners <ra...@duologix.nl> writes:
>>> 
>>> 
>>>> Hi all,
>>>> 
>>>> I am using your XML-RPC (1.0) in an applet. At first, things didn't
>>>> work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
>>>> sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
>>>> specific and does not work on all browsers. On my setup, things only
>>>> functioned correctly only using Netscape 4.x. Both IE, and Mozilla
>>>> failed.
>>>> 
>>>> Other users also encountered this problem, with no solution offered:
>>>> 
>>>> http://helma.org/archives/xmlrpc/2000-August/000164.html
>>>> 
>>>> I easily fixed this by removing the dependency on sun.misc.BASE64* to
>>>> org.apache.xmlrpc.Base64. Now, it works across all browsers.
>>>> 
>>>> Please let me know what you think of this patch. I've successfully
>>>> transferred binary data between a PHP XML-RPC server and an XML-RPC
>>>> applet (both ways).
>>>> 
>>>> Regards,
>>>> -- 
>>>> Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
>>>> --- SimpleXmlRpcClient.java.orig    Thu Jan 31 14:08:24 2002
>>>> +++ SimpleXmlRpcClient.java    Thu Jan 31 14:09:17 2002
>>>> @@ -62,6 +62,7 @@
>>>> import java.util.*;
>>>> import java.text.*;
>>>> import java.net.*;
>>>> +import org.apache.xmlrpc.Base64;
>>>> 
>>>> 
>>>> /**
>>>> @@ -188,8 +189,7 @@
>>>>    writer.endElement ("dateTime.iso8601");
>>>> } else if (what instanceof byte[]) {
>>>>    writer.startElement ("base64");
>>>> -        sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
>>>> -        writer.write (encoder.encodeBuffer ((byte[]) what));
>>>> +        writer.write (Base64.encode ((byte[]) what));
>>>>    writer.endElement ("base64");
>>>> } else if (what instanceof Vector) {
>>>>    writer.startElement ("array");
>>>> @@ -543,12 +543,7 @@
>>>>                     }
>>>>                     break;
>>>>                 case BASE64:
>>>> -                    sun.misc.BASE64Decoder decoder = new
>>>> sun.misc.BASE64Decoder ();
>>>> -                    try {
>>>> -                        value = decoder.decodeBuffer (cdata);
>>>> -                    } catch (IOException x) {
>>>> -                        throw new RuntimeException ("Error decoding base64
>>>> tag: "+x.getMessage ());
>>>> -                    }
>>>> +                    value = Base64.decode (cdata.toCharArray());
>>>>                     break;
>>>>                 case STRING:
>>>>                     value = cdata;
>>> 
>> 
> 
> 


Re: XML-RPC applet fix: removed sun.misc dependency

Posted by Martin Poeschl <mp...@marmot.at>.
Daniel Rall wrote:
> Jon cleared this up for us by replacing the infected code.

sure??

the patch is still not applied!
patched my local version in the meantime ..

martin

> 
> Daniel Rall <dl...@finemaltcoding.com> writes:
> 
> 
>>Hey Raymond.  As soon as we get the Base64 class licensing issue
>>cleared up with Kevin Kelley I can commit your changes.
>>
>>Raymond Penners <ra...@duologix.nl> writes:
>>
>>
>>>Hi all,
>>>
>>>I am using your XML-RPC (1.0) in an applet. At first, things didn't
>>>work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
>>>sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
>>>specific and does not work on all browsers. On my setup, things only
>>>functioned correctly only using Netscape 4.x. Both IE, and Mozilla
>>>failed.
>>>
>>>Other users also encountered this problem, with no solution offered:
>>>
>>>http://helma.org/archives/xmlrpc/2000-August/000164.html
>>>
>>>I easily fixed this by removing the dependency on sun.misc.BASE64* to
>>>org.apache.xmlrpc.Base64. Now, it works across all browsers.
>>>
>>>Please let me know what you think of this patch. I've successfully
>>>transferred binary data between a PHP XML-RPC server and an XML-RPC
>>>applet (both ways).
>>>
>>>Regards,
>>>-- 
>>>Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
>>>--- SimpleXmlRpcClient.java.orig	Thu Jan 31 14:08:24 2002
>>>+++ SimpleXmlRpcClient.java	Thu Jan 31 14:09:17 2002
>>>@@ -62,6 +62,7 @@
>>> import java.util.*;
>>> import java.text.*;
>>> import java.net.*;
>>>+import org.apache.xmlrpc.Base64;
>>> 
>>> 
>>> /**
>>>@@ -188,8 +189,7 @@
>>> 	    writer.endElement ("dateTime.iso8601");
>>> 	} else if (what instanceof byte[]) {
>>> 	    writer.startElement ("base64");
>>>-	    sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
>>>-	    writer.write (encoder.encodeBuffer ((byte[]) what));
>>>+	    writer.write (Base64.encode ((byte[]) what));
>>> 	    writer.endElement ("base64");
>>> 	} else if (what instanceof Vector) {
>>> 	    writer.startElement ("array");
>>>@@ -543,12 +543,7 @@
>>>                     }
>>>                     break;
>>>                 case BASE64:
>>>-                    sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder ();
>>>-                    try {
>>>-                        value = decoder.decodeBuffer (cdata);
>>>-                    } catch (IOException x) {
>>>-                        throw new RuntimeException ("Error decoding base64 tag: "+x.getMessage ());
>>>-                    }
>>>+                    value = Base64.decode (cdata.toCharArray());
>>>                     break;
>>>                 case STRING:
>>>                     value = cdata;
>>
> 




Re: XML-RPC applet fix: removed sun.misc dependency

Posted by Martin Poeschl <mp...@marmot.at>.
Daniel Rall wrote:
> Jon cleared this up for us by replacing the infected code.

sure??

the patch is still not applied!
patched my local version in the meantime ..

martin

> 
> Daniel Rall <dl...@finemaltcoding.com> writes:
> 
> 
>>Hey Raymond.  As soon as we get the Base64 class licensing issue
>>cleared up with Kevin Kelley I can commit your changes.
>>
>>Raymond Penners <ra...@duologix.nl> writes:
>>
>>
>>>Hi all,
>>>
>>>I am using your XML-RPC (1.0) in an applet. At first, things didn't
>>>work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
>>>sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
>>>specific and does not work on all browsers. On my setup, things only
>>>functioned correctly only using Netscape 4.x. Both IE, and Mozilla
>>>failed.
>>>
>>>Other users also encountered this problem, with no solution offered:
>>>
>>>http://helma.org/archives/xmlrpc/2000-August/000164.html
>>>
>>>I easily fixed this by removing the dependency on sun.misc.BASE64* to
>>>org.apache.xmlrpc.Base64. Now, it works across all browsers.
>>>
>>>Please let me know what you think of this patch. I've successfully
>>>transferred binary data between a PHP XML-RPC server and an XML-RPC
>>>applet (both ways).
>>>
>>>Regards,
>>>-- 
>>>Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
>>>--- SimpleXmlRpcClient.java.orig	Thu Jan 31 14:08:24 2002
>>>+++ SimpleXmlRpcClient.java	Thu Jan 31 14:09:17 2002
>>>@@ -62,6 +62,7 @@
>>> import java.util.*;
>>> import java.text.*;
>>> import java.net.*;
>>>+import org.apache.xmlrpc.Base64;
>>> 
>>> 
>>> /**
>>>@@ -188,8 +189,7 @@
>>> 	    writer.endElement ("dateTime.iso8601");
>>> 	} else if (what instanceof byte[]) {
>>> 	    writer.startElement ("base64");
>>>-	    sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
>>>-	    writer.write (encoder.encodeBuffer ((byte[]) what));
>>>+	    writer.write (Base64.encode ((byte[]) what));
>>> 	    writer.endElement ("base64");
>>> 	} else if (what instanceof Vector) {
>>> 	    writer.startElement ("array");
>>>@@ -543,12 +543,7 @@
>>>                     }
>>>                     break;
>>>                 case BASE64:
>>>-                    sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder ();
>>>-                    try {
>>>-                        value = decoder.decodeBuffer (cdata);
>>>-                    } catch (IOException x) {
>>>-                        throw new RuntimeException ("Error decoding base64 tag: "+x.getMessage ());
>>>-                    }
>>>+                    value = Base64.decode (cdata.toCharArray());
>>>                     break;
>>>                 case STRING:
>>>                     value = cdata;
>>
>