From 26a51e52102af0da1bf2e87c657325ecce6817d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20Hu=CC=88gelmeyer?=
Date: Wed, 6 Jun 2012 15:00:18 +0200
Subject: [PATCH] #1 - Avoid lookup of entities if no revision numbers found.
We now eagerly return an empty Revisions instance in case we don't
find revision numbers for an entity with a given ID. Not doing so
caused issues with database vendors as they might expect at least a
single revision number.
---
.../repository/support/EnversRevisionRepositoryImpl.java | 3 ++-
.../repository/support/RepositoryIntegrationTest.java | 7 ++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java b/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java
index b75dc92..70a250b 100755
--- a/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java
+++ b/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java
@@ -114,7 +114,8 @@ public class EnversRevisionRepositoryImpl revisionNumbers = reader.getRevisions(type, id);
- return getEntitiesForRevisions((List) revisionNumbers, id, reader);
+ return revisionNumbers.isEmpty() ? new Revisions(Collections.EMPTY_LIST) : getEntitiesForRevisions(
+ (List) revisionNumbers, id, reader);
}
/*
diff --git a/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTest.java b/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTest.java
index 36257fe..1299b1e 100755
--- a/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTest.java
+++ b/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTest.java
@@ -15,7 +15,7 @@
*/
package org.springframework.data.envers.repository.support;
-import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import java.util.Arrays;
@@ -102,4 +102,9 @@ public class RepositoryIntegrationTest {
Revisions wrapper = new Revisions(revisions.getContent());
assertThat(wrapper.getLatestRevision(), is(revision));
}
+
+ @Test
+ public void returnsEmptyRevisionsForUnrevisionedEntity() {
+ assertThat(countryRepository.findRevisions(100L).getContent(), is(hasSize(0)));
+ }
}