gesterzhou commented on a change in pull request #6561:
URL: https://github.com/apache/geode/pull/6561#discussion_r652278185



##########
File path: 
geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java
##########
@@ -120,7 +122,11 @@ protected Object processResponse(Message msg) throws 
Exception {
           queryResult = resultPart.getObject();
         } catch (Exception e) {
           String s = "While deserializing " + getOpName() + " result";
-          exceptionRef[0] = new SerializationException(s, e);
+          if (e instanceof PdxSerializationException) {
+            exceptionRef[0] = new IOException(s, e);

Review comment:
       The reason is explained in GEODE-9346 ticket. 
   
   In short, IOException will allow the client to retry next server in the 
connection pool until exhaust all the servers (so it will not retry forever). 
   
   Since the byte array of the pdxInstance is always the same at the server and 
other clients can deserialize it correctly, even this client can get the 
pdxInstance before and after the exception, retry is a feasible solution. 
   
   I will add this comment in the code too. 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to