Symptom: using 'delete URIs matching pattern' from web
UI doesn't seem to work, even though the same 'display'
works fine.
Apparent cause: BdbFrontier.deleteURIs() has line:
Iterator iter = allQueues.values().iterator();
Default implementation of values() is inherited from
AbstractMap, and does not appear to get all values that
are in both 'layers' of CachedBdbBigMap. 'Display'
works because it goes to underlying DB directly;
'delete' goes through subqueues so that per-queue
states can be properly updated as deletes happen.
Implementation of values() in a caching map is
inherently tricky... I marked it and similar operations
as 'unsupported' in the
org.archive.util.IdentityCachingMap (my stab at a map
like CachedBdbBigMap that doesn't use reflection to
access private members).
Options: (1) make values() (and similar methods) work
on CachedBdbBigMap; (2) change BdbFrontier.deleteURIs()
to use another approach that works with CachedBdbBigMap
(and put overrides in CachedBdbBigMap which cause the
unsupported methods to fail-fast rather than give bad
results).
Gordon Mohr
None
None
Public
|
Date: 2007-03-14 00:22
|
|
Date: 2005-04-12 21:49 Logged In: YES |
| Field | Old Value | Date | By |
|---|---|---|---|
| status_id | Open | 2005-04-12 21:50 | gojomo |
| resolution_id | None | 2005-04-12 21:50 | gojomo |
| close_date | - | 2005-04-12 21:50 | gojomo |
| assigned_to | nobody | 2005-04-12 00:22 | gojomo |
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use