From 38ba328e404eae025a19440741e023c26d3b60e8 Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Thu, 15 Dec 2016 17:57:28 +0000 Subject: [PATCH] OGM-1111 Iterators will throw NoSuchElementException --- .../hibernate/ogm/datastore/map/impl/MapDialect.java | 4 +++- .../kind/impl/OnePerKindCacheManager.java | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/hibernate/ogm/datastore/map/impl/MapDialect.java b/core/src/main/java/org/hibernate/ogm/datastore/map/impl/MapDialect.java index b3660e10f1..ff46860775 100644 --- a/core/src/main/java/org/hibernate/ogm/datastore/map/impl/MapDialect.java +++ b/core/src/main/java/org/hibernate/ogm/datastore/map/impl/MapDialect.java @@ -11,6 +11,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import org.hibernate.LockMode; import org.hibernate.dialect.lock.LockingStrategy; @@ -218,7 +219,8 @@ public Tuple next() { next = next( iterator ); return current; } - return null; + + throw new NoSuchElementException(); } @Override diff --git a/ehcache/src/main/java/org/hibernate/ogm/datastore/ehcache/persistencestrategy/kind/impl/OnePerKindCacheManager.java b/ehcache/src/main/java/org/hibernate/ogm/datastore/ehcache/persistencestrategy/kind/impl/OnePerKindCacheManager.java index 612a3250a6..84bd57a6f3 100644 --- a/ehcache/src/main/java/org/hibernate/ogm/datastore/ehcache/persistencestrategy/kind/impl/OnePerKindCacheManager.java +++ b/ehcache/src/main/java/org/hibernate/ogm/datastore/ehcache/persistencestrategy/kind/impl/OnePerKindCacheManager.java @@ -7,6 +7,7 @@ package org.hibernate.ogm.datastore.ehcache.persistencestrategy.kind.impl; import java.util.Iterator; +import java.util.NoSuchElementException; import org.hibernate.ogm.datastore.ehcache.impl.Cache; import org.hibernate.ogm.datastore.ehcache.persistencestrategy.common.impl.CacheNames; @@ -128,9 +129,13 @@ public boolean hasNext() { @Override public Tuple next() { - Tuple current = createTuple( entityCache.get( this.next ) ); - this.next = next( this.iterator ); - return current; + if ( hasNext ) { + Tuple current = createTuple( entityCache.get( this.next ) ); + this.next = next( this.iterator ); + return current; + } + + throw new NoSuchElementException(); } @Override