You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2015/11/20 22:02:03 UTC

[09/50] [abbrv] incubator-geode git commit: GEODE-77 handling messages from old GemFire clients

GEODE-77 handling messages from old GemFire clients

Message objects were not passing on their version information to Part objects, causing deserialization errors when servers were being used by old GemFire clients.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b4d083e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b4d083e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b4d083e4

Branch: refs/heads/develop
Commit: b4d083e4cc6616199a2f6751f49a0686c9d28570
Parents: 9d11030
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Thu Oct 22 09:02:27 2015 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Thu Oct 22 09:02:27 2015 -0700

----------------------------------------------------------------------
 .../membership/gms/membership/GMSJoinLeave.java |  2 +-
 .../cache/tier/sockets/BaseCommand.java         |  1 +
 .../internal/cache/tier/sockets/Message.java    | 23 ++++++++++++--------
 .../internal/cli/result/ResultBuilder.java      |  0
 4 files changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d083e4/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
index 3f85cda..57611e6 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
@@ -1904,7 +1904,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
         @Override
         public Thread newThread(Runnable r) {
           return new Thread(Services.getThreadGroup(), r,
-              "Member verification thread " + i.incrementAndGet());
+              "GemFire View Creator verification thread " + i.incrementAndGet());
         }
       });
       

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d083e4/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommand.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommand.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommand.java
index 5e35ce4..e0181ee 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommand.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommand.java
@@ -369,6 +369,7 @@ public abstract class BaseCommand implements Command {
             new Object[] {servConn.getName(), servConn.getModRegion(), servConn.getModKey(), Integer.valueOf(transId)}));
         }
         else {
+          logger.debug("EOF exception", eof);
           logger.info(LocalizedMessage.create(
             LocalizedStrings.BaseCommand_0_CONNECTION_DISCONNECT_DETECTED_BY_EOF,
             servConn.getName()));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d083e4/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java
index b274ec5..e418320 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java
@@ -136,13 +136,13 @@ public class Message  {
   // Tentative workaround to avoid OOM stated in #46754.
   public static final ThreadLocal<Integer> messageType = new ThreadLocal<Integer>();
   
-  Version destVersion;
+  Version version;
   
   /**
    * Creates a new message with the given number of parts
    */
   public Message(int numberOfParts, Version destVersion) {
-    this.destVersion = destVersion;
+    this.version = destVersion;
     Assert.assertTrue(destVersion != null, "Attempt to create an unversioned message");
     partsList = new Part[numberOfParts];
     this.numberOfParts = numberOfParts;
@@ -169,7 +169,7 @@ public class Message  {
   }
   
   public void setVersion(Version clientVersion) {
-    this.destVersion = clientVersion;
+    this.version = clientVersion;
   }
 
   /**
@@ -332,8 +332,8 @@ public class Message  {
   
   private void serializeAndAddPartNoCopying(Object o) {
     HeapDataOutputStream hdos;
-    Version v = destVersion;
-    if (destVersion.equals(Version.CURRENT)){
+    Version v = version;
+    if (version.equals(Version.CURRENT)){
       v = null;
     }
     // create the HDOS with a flag telling it that it can keep any byte[] or ByteBuffers/ByteSources passed to it.
@@ -380,8 +380,8 @@ public class Message  {
 //       addRawPart(b, true);
     } else {
       HeapDataOutputStream hdos;
-      Version v = destVersion;
-      if (destVersion.equals(Version.CURRENT)){
+      Version v = version;
+      if (version.equals(Version.CURRENT)){
         v = null;
       }
       hdos = new HeapDataOutputStream(chunkSize, v);
@@ -449,8 +449,13 @@ public class Message  {
   }
   
   public Part getPart(int index) {
-    if (index < this.numberOfParts)
-      return partsList[index];
+    if (index < this.numberOfParts) {
+      Part p = partsList[index];
+      if (this.version != null) {
+        p.setVersion(this.version);
+      }
+      return p;
+    }
     return null;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d083e4/gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/result/ResultBuilder.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/result/ResultBuilder.java b/gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/result/ResultBuilder.java
old mode 100644
new mode 100755