Fixed unhandled GridDhtInvalidPartitionException.

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/164e3188
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/164e3188
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/164e3188

Branch: refs/heads/ignite-5075-pds
Commit: 164e3188f303b3565a53634be713917b0f6e2e85
Parents: 9c3028a
Author: Ilya Lantukh <[email protected]>
Authored: Fri May 26 16:08:57 2017 +0300
Committer: Ilya Lantukh <[email protected]>
Committed: Fri May 26 16:08:57 2017 +0300

----------------------------------------------------------------------
 .../distributed/dht/GridDhtGetSingleFuture.java | 27 ++++++++++++--------
 1 file changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/164e3188/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
index d93831d..9a7cfdc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
@@ -265,23 +265,28 @@ public final class GridDhtGetSingleFuture<K, V> extends 
GridFutureAdapter<GridCa
      * @return {@code True} if mapped.
      */
     private boolean map(KeyCacheObject key) {
-        GridDhtLocalPartition part = topVer.topologyVersion() > 0 ?
-            cache().topology().localPartition(cctx.affinity().partition(key), 
topVer, true) :
-            cache().topology().localPartition(key, false);
+        try {
+            GridDhtLocalPartition part = topVer.topologyVersion() > 0 ?
+                
cache().topology().localPartition(cctx.affinity().partition(key), topVer, true) 
:
+                cache().topology().localPartition(key, false);
 
-        if (part == null)
-            return false;
+            if (part == null)
+                return false;
 
-        assert this.part == -1;
+            assert this.part == -1;
 
-        // By reserving, we make sure that partition won't be unloaded while 
processed.
-        if (part.reserve()) {
-            this.part = part.id();
+            // By reserving, we make sure that partition won't be unloaded 
while processed.
+            if (part.reserve()) {
+                this.part = part.id();
 
-            return true;
+                return true;
+            }
+            else
+                return false;
         }
-        else
+        catch (GridDhtInvalidPartitionException ex) {
             return false;
+        }
     }
 
     /**

Reply via email to