Sam, Kevin Smith informs me that this has been fixed in the "tip" version of the Java client. You can get it here:
http://bitbucket.org/basho/riak-java-client Sean Cribbs <s...@basho.com> Developer Advocate Basho Technologies, Inc. http://basho.com/ On May 28, 2010, at 11:51 PM, Sam Tingleff wrote: > I've filed issue #5 on the java client: RiakObject should not present > a getValueAsBytes() method > > The real problem is that if the caller does not use stream(), > RiakClient will call getResponseBodyAsString() on the HttpMethod > object. This will of course convert from byte[] to String, which is > broken behavior for non-string data and is unexpected if the caller > uses getValueAsBytes() in RiakObject. > > IMHO RiakObject should only hold a byte array and perform byte[] to > String conversion only on demand and when explicitly asked to do so > (if at all). > > On Fri, May 28, 2010 at 3:29 PM, Sam Tingleff <s...@tingleff.com> wrote: >> >> Yeah... looks like the java client is mangling on get. >> >> On Fri, May 28, 2010 at 3:18 PM, Sean Cribbs <s...@basho.com> wrote: >>> >>> Your other alternative is to write with the Java client, then download the >>> data with an external program like curl, and see if the bytes are mangled >>> before they get to Riak (using a hex editor or something). You might even >>> use something like Wireshark to see what is sent in the TCP packets, if you >>> want to get fancy. >>> My suspicion is that they are being modified somewhere in the Java stack. >>> Riak is completely agnostic about any binary data you give it. >>> >>> Sean Cribbs <s...@basho.com> >>> Developer Advocate >>> Basho Technologies, Inc. >>> http://basho.com/ >>> On May 28, 2010, at 6:06 PM, Sam Tingleff wrote: >>> >>> It looks like byte values < 0 are consistently modified on read. >>> >>> On Fri, May 28, 2010 at 2:58 PM, Sam Tingleff <s...@tingleff.com> wrote: >>>> >>>> Yeah, you're right... I'm sending as application/octet-stream. Is there >>>> some special handling depending on content-type? >>>> >>>> On Fri, May 28, 2010 at 2:56 PM, Sean Cribbs <s...@basho.com> wrote: >>>>> >>>>> It seems more than just the first two bytes are changed. What >>>>> content-type are you sending the data as? >>>>> >>>>> Sean Cribbs <s...@basho.com> >>>>> Developer Advocate >>>>> Basho Technologies, Inc. >>>>> http://basho.com/ >>>>> >>>>> On May 28, 2010, at 5:46 PM, Sam Tingleff wrote: >>>>> >>>>>> >>>>>> It sounds crazy, I know. >>>>>> >>>>>> I'm using the Java client with riak 0.10.1-1. Sending a byte array seems >>>>>> to work if it is a UTF-8 encoded string. But if I send serialized object >>>>>> data, or just compressed bytes, the first two bytes seem to come back >>>>>> modified on read. >>>>>> >>>>>> From the debugger... Sending: >>>>>> [31, -117, 8, 0, 0, 0, 0, 0, 0, 0, -53, 72, -51, -55, -55, 87, 72, 41, >>>>>> 77, 73, 5, 0, 108, 24, 72, 30, 10, 0, 0, 0] >>>>>> >>>>>> I get back: >>>>>> [31, 63, 8, 0, 0, 0, 0, 0, 0, 0, -24, 72, -22, -125, -125, 87, 72, 41, >>>>>> 77, 73, 5, 0, 108, 24, 72, 30, 10, 0, 0, 0] >>>>>> >>>>>> What's going on? Thanks! >>>>>> _______________________________________________ >>>>>> riak-users mailing list >>>>>> riak-users@lists.basho.com >>>>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>>>> >>>> >>> >>> _______________________________________________ >>> riak-users mailing list >>> riak-users@lists.basho.com >>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>> >> _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com