You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/04/26 21:03:00 UTC

[jira] [Commented] (GEODE-8992) When a GatewaySenderEventImpl is serialized, its operationDetail field is not included

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

ASF subversion and git services commented on GEODE-8992:
--------------------------------------------------------

Commit 9f94cb62f72cc4577509d0fe6fe1162a6c64eb67 in geode's branch refs/heads/feature/GEODE-8992 from Barry Oglesby
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=9f94cb6 ]

GEODE-8992: Added version check for events from remote sites


> When a GatewaySenderEventImpl is serialized, its operationDetail field is not included
> --------------------------------------------------------------------------------------
>
>                 Key: GEODE-8992
>                 URL: https://issues.apache.org/jira/browse/GEODE-8992
>             Project: Geode
>          Issue Type: Bug
>          Components: wan
>            Reporter: Barrett Oglesby
>            Assignee: Barrett Oglesby
>            Priority: Major
>              Labels: blocks-1.15.0​, pull-request-available
>             Fix For: 1.15.0
>
>
> This causes the operation to become less specific when the {{GatewaySenderEventImpl}} is deserialized.
> Here is an example.
> If the original {{GatewaySenderEventImpl}} is a *PUTALL_CREATE* like:
> {noformat}
> GatewaySenderEventImpl[id=EventID[id=31 bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=PUTALL_CREATE;region=/data;key=0;value=0;...]
> {noformat}
> Then, when the {{GatewaySenderEventImpl}} is serialized and deserialized, its operation becomes a *CREATE*:
> {noformat}
> GatewaySenderEventImpl[id=EventID[id=31 bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=CREATE;region=/data;key=0;value=0;...]
> {noformat}
> Thats because {{GatewaySenderEventImpl.getOperation}} uses both *action* and *operationDetail* to determine its operation:
> {noformat}
> public Operation getOperation() {
>   Operation op = null;
>   switch (this.action) {
>     case CREATE_ACTION:
>       switch (this.operationDetail) {
>         case ...
>         case OP_DETAIL_PUTALL:
>           op = Operation.PUTALL_CREATE;
>           break;
>         default:
>           op = Operation.CREATE;
>           break;
>       }
>     ...
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)