diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
commit | abada90e3f84dc703b8ddc9efcbed8a946fadead (patch) | |
tree | 2c6f9dccd510ea97cb927a7bd635422efaae547a /java/src/Freeze/EvictorIteratorI.java | |
parent | removing trace message (diff) | |
download | ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.bz2 ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.xz ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.zip |
Expanded tabs into spaces
Diffstat (limited to 'java/src/Freeze/EvictorIteratorI.java')
-rw-r--r-- | java/src/Freeze/EvictorIteratorI.java | 340 |
1 files changed, 170 insertions, 170 deletions
diff --git a/java/src/Freeze/EvictorIteratorI.java b/java/src/Freeze/EvictorIteratorI.java index 586100ad4f1..9e88aa72a36 100644 --- a/java/src/Freeze/EvictorIteratorI.java +++ b/java/src/Freeze/EvictorIteratorI.java @@ -14,194 +14,194 @@ class EvictorIteratorI extends Ice.LocalObjectImpl implements EvictorIterator public boolean hasNext() { - if(_batchIterator != null && _batchIterator.hasNext()) - { - return true; - } - else - { - _batchIterator = nextBatch(); - return (_batchIterator != null); - } + if(_batchIterator != null && _batchIterator.hasNext()) + { + return true; + } + else + { + _batchIterator = nextBatch(); + return (_batchIterator != null); + } } public Ice.Identity next() { - if(hasNext()) - { - return (Ice.Identity) _batchIterator.next(); - } - else - { - throw new NoSuchElementException(); - } + if(hasNext()) + { + return (Ice.Identity) _batchIterator.next(); + } + else + { + throw new NoSuchElementException(); + } } EvictorIteratorI(ObjectStore store, int batchSize) { - _store = store; - _more = (store != null); - _batchSize = batchSize; - - assert batchSize > 0; + _store = store; + _more = (store != null); + _batchSize = batchSize; + + assert batchSize > 0; - _key.setReuseBuffer(true); + _key.setReuseBuffer(true); - // - // dlen is 0, so we should not retrieve any value - // - _value.setPartial(true); + // + // dlen is 0, so we should not retrieve any value + // + _value.setPartial(true); } private java.util.Iterator nextBatch() { - EvictorI.DeactivateController deactivateController = _store.evictor().deactivateController(); - deactivateController.lock(); - - try - { - if(!_more) - { - return null; - } - - java.util.List evictorElements = null; - - Ice.Communicator communicator = _store.communicator(); - - byte[] firstKey = null; - if(_key.getSize() > 0) - { - firstKey = new byte[_key.getSize()]; - System.arraycopy(_key.getData(), 0, firstKey, 0, firstKey.length); - } - - try - { - for(;;) - { - com.sleepycat.db.Cursor dbc = null; - - _batch = new java.util.ArrayList(); - - try - { - // - // Move to the first record - // - boolean range = false; - if(firstKey != null) - { - // - // _key represents the next element not yet returned - // if it has been deleted, we want the one after - // - range = true; - } - - dbc = _store.db().openCursor(null, null); - - boolean done = false; - do - { - com.sleepycat.db.OperationStatus status; - if(range) - { - status = dbc.getSearchKeyRange(_key, _value, null); - } - else - { - status = dbc.getNext(_key, _value, null); - } - _more = (status == com.sleepycat.db.OperationStatus.SUCCESS); + EvictorI.DeactivateController deactivateController = _store.evictor().deactivateController(); + deactivateController.lock(); + + try + { + if(!_more) + { + return null; + } + + java.util.List evictorElements = null; + + Ice.Communicator communicator = _store.communicator(); + + byte[] firstKey = null; + if(_key.getSize() > 0) + { + firstKey = new byte[_key.getSize()]; + System.arraycopy(_key.getData(), 0, firstKey, 0, firstKey.length); + } + + try + { + for(;;) + { + com.sleepycat.db.Cursor dbc = null; + + _batch = new java.util.ArrayList(); + + try + { + // + // Move to the first record + // + boolean range = false; + if(firstKey != null) + { + // + // _key represents the next element not yet returned + // if it has been deleted, we want the one after + // + range = true; + } + + dbc = _store.db().openCursor(null, null); + + boolean done = false; + do + { + com.sleepycat.db.OperationStatus status; + if(range) + { + status = dbc.getSearchKeyRange(_key, _value, null); + } + else + { + status = dbc.getNext(_key, _value, null); + } + _more = (status == com.sleepycat.db.OperationStatus.SUCCESS); - if(_more) - { - range = false; + if(_more) + { + range = false; - if(_batch.size() < _batchSize) - { - Ice.Identity ident = ObjectStore.unmarshalKey(_key.getData(), communicator); - _batch.add(ident); - } - else - { - // - // Keep the last element in _key - // - done = true; - } - } - } - while(!done && _more); - - break; // for (;;) - } - catch(com.sleepycat.db.DeadlockException dx) - { - if(firstKey != null) - { - assert(_key.getData().length >= firstKey.length); - System.arraycopy(firstKey, 0, _key.getData(), 0, firstKey.length); - _key.setSize(firstKey.length); - } - else - { - _key.setSize(0); - } - - if(_store.evictor().deadlockWarning()) - { - communicator.getLogger().warning("Deadlock in Freeze.EvictorIteratorI.load while " + - "iterating over Db \"" + _store.evictor().filename() + "/" + _store.dbName() + - "\"; retrying..."); - } - - // - // Retry - // - } - finally - { - if(dbc != null) - { - try - { - dbc.close(); - } - catch(com.sleepycat.db.DeadlockException dx) - { - // - // Ignored - // - } - } - } - } - } - catch(com.sleepycat.db.DatabaseException dx) - { - DatabaseException ex = new DatabaseException(); - ex.initCause(dx); - ex.message = _store.evictor().errorPrefix() + "Db.cursor: " + dx.getMessage(); - throw ex; - } - - if(_batch.size() == 0) - { - return null; - } - else - { - return _batch.listIterator(); - } - } - finally - { - deactivateController.unlock(); - } + if(_batch.size() < _batchSize) + { + Ice.Identity ident = ObjectStore.unmarshalKey(_key.getData(), communicator); + _batch.add(ident); + } + else + { + // + // Keep the last element in _key + // + done = true; + } + } + } + while(!done && _more); + + break; // for (;;) + } + catch(com.sleepycat.db.DeadlockException dx) + { + if(firstKey != null) + { + assert(_key.getData().length >= firstKey.length); + System.arraycopy(firstKey, 0, _key.getData(), 0, firstKey.length); + _key.setSize(firstKey.length); + } + else + { + _key.setSize(0); + } + + if(_store.evictor().deadlockWarning()) + { + communicator.getLogger().warning("Deadlock in Freeze.EvictorIteratorI.load while " + + "iterating over Db \"" + _store.evictor().filename() + "/" + _store.dbName() + + "\"; retrying..."); + } + + // + // Retry + // + } + finally + { + if(dbc != null) + { + try + { + dbc.close(); + } + catch(com.sleepycat.db.DeadlockException dx) + { + // + // Ignored + // + } + } + } + } + } + catch(com.sleepycat.db.DatabaseException dx) + { + DatabaseException ex = new DatabaseException(); + ex.initCause(dx); + ex.message = _store.evictor().errorPrefix() + "Db.cursor: " + dx.getMessage(); + throw ex; + } + + if(_batch.size() == 0) + { + return null; + } + else + { + return _batch.listIterator(); + } + } + finally + { + deactivateController.unlock(); + } } private final ObjectStore _store; |