>On the server, it simply depends ...
In my case I'm only writing the client code.

>The only place where the logic breaks is the clients return value: The
>XML-RPC library doesn't know what type of return value you expect. In
>other words, you should always receive an Object[] there.

I definitely see some variation.  My original xmlrpc code was written to
always expect vectors, whenever the xmlrpc type was <array>.  That
worked.  When porting to 3.0 I recoded to expect Object[] instead and
sometimes, but not always, this produced ClassCastExceptions - the there
seemed to be a case where I got a class cast exception casting a
LinkedList as an Object[].  I had to write the following code to work
around this:

        /**
         * @param o an Object[] or List returned from an XML-RPC array
type
         * @return a List containing the same elements as the array
         * @throws ClassCastException if o is not an Object[] or a List
         */
        protected static List getAsList(Object o) 
        {
                if (o instanceof List && o != null) {
                        return (List) o;
                }
                List newlist = new LinkedList();
                
                if (o != null) {
                        newlist.addAll(Arrays.asList((Object[]) o));
                }
                return newlist;
        }

If the first three lines are commented out, ClassCastExceptions result.
Also, I had to do the 
addAll dance because Arrays.asList() produces a wierd variety of List
for which remove() is not defined.

>As for the migration guide: How about writing one, now that you're
>through it? This is open source reality as well. :-)

Yup.  I've been a contributor to other Apache projects so I know the
drill.  I would be willing to write my experiences up, but as seen
above, I don't really understand this package as well as I'd like to, so
you'd have to edit them.  If you are willing to have that level of
contribution (and I see no reason why you shouldn't be) then I'd be
happy to contribute one.

-----Original Message-----
From: Jochen Wiedmann [mailto:[EMAIL PROTECTED] 
Sent: Thursday, October 05, 2006 12:06 AM
To: xmlrpc-dev@ws.apache.org
Subject: Re: Is there a "distributon" for ws-commons-java5


On 10/5/06, COHEN, STEVEN M (SBCSI) <[EMAIL PROTECTED]> wrote:

> Actually, that is VERY tricky because on this page
>
> http://ws.apache.org/xmlrpc/types.html
>
> It says that an XML-RPC array type maps to an Object[] or
> java.util.List.  Very odd.  Indeed I found that sometimes it was an
> Object[] and sometimes a List and I had to write a method to handle
> that.  Why would it not be consistent, I wonder?

On the server, it simply depends on your choice. If your method
signature contains an Object[], then you receive an Object[]. If your
signature contains a List, then you receive a List. Even better, if
your signature contains a Vector ... then you receive a Vector.

The only place where the logic breaks is the clients return value: The
XML-RPC library doesn't know what type of return value you expect. In
other words, you should always receive an Object[] there.

As for the migration guide: How about writing one, now that you're
through it? This is open source reality as well. :-)

Jochen


-- 
My wife Mary and I have been married for forty-seven years and not
once have we had an argument serious enough to consider divorce;
murder, yes, but divorce, never.
(Jack Benny)

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


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

Reply via email to