See: https://issues.apache.org/jira/browse/GEODE-86

On Wed, Jul 8, 2015 at 2:33 PM, Darrel Schneider <[email protected]>
wrote:

> This looks like a bug
> in com.gemstone.gemfire.cache.operations.KeyValueOperationContext.getValue().
> This method should return to deserialized value for the operation. The
> javadocs don't actually say this but I think that was the idea. If you
> wanted to serialized value you could call getSerializedValue().
>
> The problem with the current getValue implementation is that if the
> context has a serialized value it just returns it. But the serialized value
> will always be a byte[] that contains the serialized bytes.
>
> getValue should only return a byte array if the actual value passed to the
> operation was a byte array.
> I will fire a jira ticket for this. Thanks for reporting it.
>
> Your workaround looks reasonable.
>
>
> On Wed, Jul 8, 2015 at 11:08 AM, gtantachuco . <[email protected]>
> wrote:
>
>> All,
>> I am using a plain-old Java object and Geode PDX to PUT and GET values
>> from a client app to a Geode region. Thanks to PDX, I don't have to install
>> the class on the Geode cluster.
>>
>> In my implementation of the AccessControl interface, I receive the
>> OperationContext object as part of the pre- and post-authorization
>> callbacks. I was expecting to receive a PdxInstance object but instead I am
>> receiving a byte[] object.
>> In the future, It would be nice to receive a PdxInstance to make the
>> process much cleaner. For now I have to do this something like this to get
>> my PdxInstance object:
>>
>> PdxInputStream pdxIs = new PdxInputStream((byte[])
>> ((KeyValueOperationContext) context).getValue());
>>
>>  userData = (PdxInstance) DataSerializer.readObject(pdxIs);
>>
>> --
>> Best regards,
>> -Guillermo
>>
>>
>

Reply via email to