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))); + } }