From a87a673fe9f0db0ba4f6a5dd4d1e1cecb9283331 Mon Sep 17 00:00:00 2001
From: "Brian S. O'Neill" <bronee@gmail.com>
Date: Wed, 7 Feb 2007 02:22:46 +0000
Subject: Don't attempt to repair inconsistency when not fully defining the
 primary key on the replica.

---
 .../carbonado/repo/replicated/ReplicationTrigger.java     | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

(limited to 'src/main/java/com')

diff --git a/src/main/java/com/amazon/carbonado/repo/replicated/ReplicationTrigger.java b/src/main/java/com/amazon/carbonado/repo/replicated/ReplicationTrigger.java
index ebce796..249a779 100644
--- a/src/main/java/com/amazon/carbonado/repo/replicated/ReplicationTrigger.java
+++ b/src/main/java/com/amazon/carbonado/repo/replicated/ReplicationTrigger.java
@@ -321,9 +321,18 @@ class ReplicationTrigger<S extends Storable> extends Trigger<S> {
                         return;
                     }
                 }
-            } else if (!master.tryLoad()) {
-                // Both are missing -- no repair needed.
-                return;
+            } else {
+                try {
+                    if (!master.tryLoad()) {
+                        // Both are missing -- no repair needed.
+                        return;
+                    }
+                } catch (IllegalStateException e) {
+                    // Can be caused by not fully defining the primary key on
+                    // the replica, but an alternate key is. The insert will
+                    // fail anyhow, so don't try to repair.
+                    return;
+                }
             }
         } catch (FetchException e) {
             throw e.toPersistException();
-- 
cgit v1.2.3