You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by "Bruce Schuchardt (JIRA)" <ji...@apache.org> on 2017/05/19 18:17:04 UTC

[jira] [Created] (GEODE-2954) Old client gets null memberID in cache listener

Bruce Schuchardt created GEODE-2954:
---------------------------------------

             Summary: Old client gets null memberID in cache listener
                 Key: GEODE-2954
                 URL: https://issues.apache.org/jira/browse/GEODE-2954
             Project: Geode
          Issue Type: Bug
          Components: regions
            Reporter: Bruce Schuchardt
             Fix For: 1.2.0


I was doing backward compatibility testing and found a 1.0 client was getting a null memberID in a cache listener

{noformat}
[info 2017/05/18 16:27:38.957 PDT <Cache Client Updater Thread  on trout(bridgegemfire5_trout_2254:2254)<ec><v2>:1030 port 21051> tid=0x2f] Invoked util.SilenceListener for key Object_7399: afterDestroy in edge1, pid 2267, vmID 5, operation DESTROY
     whereIWasRegistered: 2267
     event.getKey(): Object_7399
     event.getOldValue(): <util.QueryObject util.QueryObject with id 12423 (contains 6 levels, aPrimitiveLong=6409636308677575978)>
     event.getNewValue(): null
     event.getOperation().isLoad(): false
     event.getOperation().isLocalLoad(): false
     event.getOperation().isNetLoad(): false
     event.getOperation().isNetSearch(): false
     event.isConcurrencyConflict(): false
     event.getDistributedMember(): null
     event.getCallbackArgument(): null
     event.getRegion(): /testRegion
     event.getOperation().isDistributed(): true
     event.getOperation().isExpiration(): false
     event.isOriginRemote(): true
{noformat}

This was in an old test suite whose testing infrastructure isn't in the Geode repo.  I'm writing a unit test to reproduce the problem.

If you look at EventID.java you can see that it catches IOExceptions in deserializing the memberID of the event and returns null without logging the problem.

{code}
    try {
      result = InternalDistributedMember.readEssentialData(dis);
    } catch (IOException e) {
      // nothing can be done about this
    } catch (ClassNotFoundException e) {
      // ditto
    }
{code}




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)