[ 
https://issues.apache.org/jira/browse/IGNITE-2953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15228022#comment-15228022
 ] 

Artem Shutak commented on IGNITE-2953:
--------------------------------------

Tests on withKeepBinary case already exist. See 
InterceptorWithKeepBinaryCacheTestSuite or looking for IGNITE-2953 at project.

> Wrong marshalling and unmarshalling of invoke result with BinaryMarshaller
> --------------------------------------------------------------------------
>
>                 Key: IGNITE-2953
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2953
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Artem Shutak
>
> When {{CacheEntryProcessor.process()}} method called on remote node, then 
> Ignite will serialize result of {{CacheEntryProcessor.process()}} to 
> {{BinaryObject}} and then the {{BinaryObject}} will be deserialized or not on 
> local node (which called invoke/invokeAll) depending on {{keepBinary}} flag 
> of current operation ({{cache.withKeepBinary()}} or not).
> It's wrong behaviour for both withKeepBinary cache and not.
> Lets look at the following use caseы with invoke/invokeAll and 
> BinaryMarshaller:
> # Cache.withKeepBinary
> #- {{CacheEntryProcessor.process()}} returns any user object (not 
> BinaryObject)
> #- at this case user will get mixed user objects and {{BinaryObjects}} 
> depending on what node processing was done (local and remote)
> # Cache without withKeepBinary
> #- {{CacheEntryProcessor.process()}} returns {{BinaryObject}} builded like 
> {{ignite.binary().builder("MyObj").build()}}
> #- at this case user will get exception because Ignite will try deseriallize 
> {{BinaryObject}}.
> Looks like we need to add one more flag at {{GridCacheReturn}} message to 
> detect whether result should be converted from binary object or not (see 
> org/apache/ignite/internal/processors/cache/GridCacheReturn.java:334, 
> org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java:91).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to