diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java index 1004afa..a737d2a 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java @@ -302,7 +302,13 @@ public class RDBDocumentStoreJDBC { results = stmt.executeBatch(); } catch (BatchUpdateException ex) { LOG.debug("Some of the batch updates failed", ex); - results = ex.getUpdateCounts(); + // POSTGRES returns positive update counts even for rows that wasn't created. + // See OAK-3937. + if (this.dbInfo == RDBDocumentStoreDB.POSTGRES) { + results = new int[0]; + } else { + results = ex.getUpdateCounts(); + } } finally { stmt.close(); } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MultiDocumentStoreTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MultiDocumentStoreTest.java index 360cd3e..c041d6f 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MultiDocumentStoreTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MultiDocumentStoreTest.java @@ -215,8 +215,6 @@ public class MultiDocumentStoreTest extends AbstractMultiDocumentStoreTest { @Test public void concurrentBatchUpdate() throws Exception { - // OAK-3924 and OAK-3937 - assumeTrue(dsf == DocumentStoreFixture.MONGO); final CountDownLatch ready = new CountDownLatch(2); final CountDownLatch go = new CountDownLatch(1); final List ids = Lists.newArrayList();