diff options
author | Bernard Normier <bernard@zeroc.com> | 2010-06-23 16:17:26 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2010-06-23 16:17:26 -0400 |
commit | 0e0dd27964e1bf174eb02fc3db2f7a56f905ca06 (patch) | |
tree | 46622c1f5260f869e5d19ed2e1f14dfa805c39b0 | |
parent | Bug 4772 - Addin not installing over previous version (diff) | |
download | ice-0e0dd27964e1bf174eb02fc3db2f7a56f905ca06.tar.bz2 ice-0e0dd27964e1bf174eb02fc3db2f7a56f905ca06.tar.xz ice-0e0dd27964e1bf174eb02fc3db2f7a56f905ca06.zip |
Fix for bug #4785
-rwxr-xr-x[-rw-r--r--] | cpp/src/Freeze/EvictorIteratorI.cpp | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | cpp/test/Freeze/evictor/TestI.cpp | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | java/src/Freeze/EvictorIteratorI.java | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | java/test/Freeze/evictor/RemoteEvictorI.java | 15 |
4 files changed, 31 insertions, 8 deletions
diff --git a/cpp/src/Freeze/EvictorIteratorI.cpp b/cpp/src/Freeze/EvictorIteratorI.cpp index 978747ef7f0..f28cf805f28 100644..100755 --- a/cpp/src/Freeze/EvictorIteratorI.cpp +++ b/cpp/src/Freeze/EvictorIteratorI.cpp @@ -60,15 +60,15 @@ Freeze::EvictorIteratorI::next() vector<Identity>::const_iterator Freeze::EvictorIteratorI::nextBatch() { - DeactivateController::Guard - deactivateGuard(_store->evictor()->deactivateController()); - _batch.clear(); if(!_more) { return _batch.end(); } + + DeactivateController::Guard + deactivateGuard(_store->evictor()->deactivateController()); Key firstKey = _key; diff --git a/cpp/test/Freeze/evictor/TestI.cpp b/cpp/test/Freeze/evictor/TestI.cpp index 2be433a4309..56a5a80a910 100644..100755 --- a/cpp/test/Freeze/evictor/TestI.cpp +++ b/cpp/test/Freeze/evictor/TestI.cpp @@ -534,6 +534,14 @@ Test::RemoteEvictorI::RemoteEvictorI(const CommunicatorPtr& communicator, const { _evictor = Freeze::createBackgroundSaveEvictor(_evictorAdapter, envName, category, initializer); } + + // + // Check that we can get an iterator on a non-existing facet + // + Freeze::EvictorIteratorPtr p = _evictor->getIterator("foo", 1); + test(p->hasNext() == false); + + initializer->init(this, _evictor); _evictorAdapter->addServantLocator(_evictor, category); diff --git a/java/src/Freeze/EvictorIteratorI.java b/java/src/Freeze/EvictorIteratorI.java index e96bffefc2f..938da54afc2 100644..100755 --- a/java/src/Freeze/EvictorIteratorI.java +++ b/java/src/Freeze/EvictorIteratorI.java @@ -58,6 +58,11 @@ class EvictorIteratorI implements EvictorIterator private java.util.Iterator<Ice.Identity> nextBatch() { + if(!_more) + { + return null; + } + EvictorI.DeactivateController deactivateController = _store.evictor().deactivateController(); deactivateController.lock(); @@ -65,11 +70,6 @@ class EvictorIteratorI implements EvictorIterator try { - if(!_more) - { - return null; - } - Ice.Communicator communicator = _store.communicator(); byte[] firstKey = null; diff --git a/java/test/Freeze/evictor/RemoteEvictorI.java b/java/test/Freeze/evictor/RemoteEvictorI.java index 1c4b88c4be8..1431767dcb0 100644..100755 --- a/java/test/Freeze/evictor/RemoteEvictorI.java +++ b/java/test/Freeze/evictor/RemoteEvictorI.java @@ -12,6 +12,15 @@ import test.Freeze.evictor.Test.*; public final class RemoteEvictorI extends _RemoteEvictorDisp { + private static void + test(boolean b) + { + if(!b) + { + throw new RuntimeException(); + } + } + static class Initializer implements Freeze.ServantInitializer { public void @@ -69,6 +78,12 @@ public final class RemoteEvictorI extends _RemoteEvictorDisp true); } + // + // Check that we can get an iterator on a non-existing facet + // + Freeze.EvictorIterator p = _evictor.getIterator("foo", 1); + test(p.hasNext() == false); + initializer.init(this, _evictor); _evictorAdapter.addServantLocator(_evictor, category); |