May 18, 2010 23:45:06:256 (freenet.support.PooledExecutor$MyThread, 
<noname>(244), ERROR): Caught java.lang.AssertionError: 
plugins.Library.util.exec.TaskInProgressException running job 
freenet.support.PooledExecutor$Job at 1aa0208d
java.lang.AssertionError: plugins.Library.util.exec.TaskInProgressException
        at 
plugins.Library.index.ProtoIndexComponentSerialiser$BTreePacker.preprocessPullBins(ProtoIndexComponentSerialiser.java:421)
        at plugins.Library.io.serial.Packer.pull(Packer.java:473)
        at 
plugins.Library.util.SkeletonTreeMap.inflate(SkeletonTreeMap.java:261)
        at 
plugins.Library.index.ProtoIndex$getTermEntriesHandler.run(ProtoIndex.java:210)
        at 
freenet.support.PooledExecutor$MyThread.realRun(PooledExecutor.java:227)
        at freenet.support.io.NativeThread.run(NativeThread.java:101)
plugins.Library.util.exec.TaskInProgressException
        at 
plugins.Library.io.serial.ProgressTracker.addPullProgress(ProgressTracker.java:165)
        at 
plugins.Library.index.ProtoIndexComponentSerialiser$BTreePacker.preprocessPullBins(ProtoIndexComponentSerialiser.java:416)
        at plugins.Library.io.serial.Packer.pull(Packer.java:473)
        at 
plugins.Library.util.SkeletonTreeMap.inflate(SkeletonTreeMap.java:261)
        at 
plugins.Library.index.ProtoIndex$getTermEntriesHandler.run(ProtoIndex.java:210)
        at 
freenet.support.PooledExecutor$MyThread.realRun(PooledExecutor.java:227)
        at freenet.support.io.NativeThread.run(NativeThread.java:101)

Is it possible that the two words being searched for are both in the same bin? 
If so, is this to be expected? Why is getting a TaskInProgressException here so 
exceptional as to warrant an AssertionError? Can we just ignore it and carry on?

Relevant functions:

                @Override protected void preprocessPullBins(Map<K, PullTask<V>> 
tasks, Collection<PullTask<Map<K, V>>> bintasks) {
                        for (Map.Entry<K, PullTask<V>> en: tasks.entrySet()) {
                                try {
                                        BaseCompositeProgress p = 
tracker.addPullProgress(en.getValue());
                                        
p.setSubProgress(ProgressTracker.makePullProgressIterable(subsrl.getTracker(), 
bintasks));
                                        
p.setEstimate(ProgressParts.TOTAL_FINALIZED);
                                        p.setSubject("Pulling root container 
for " + en.getKey());
                                } catch (TaskInProgressException e) {
                                        throw new AssertionError(e);
                                }
                        }
                }

        /**
        ** Creates a new pull progress and keeps track of it. If there is 
already a
        ** progress for the metadata, throws {@link TaskInProgressException}. 
This
        ** ensures that the object returned from this method has not been seen 
by
        ** any other threads.
        **
        ** @throws TaskInProgressException
        */
        public P addPullProgress(PullTask<T> task) throws 
TaskInProgressException {
                synchronized (pullProgress) {
                        P p = pullProgress.get(task);
                        if (p != null) { throw new TaskInProgressException(p); }
                        pullProgress.put(task, p = newProgress());

                        /*if (pullWaiters.contains(task)) {
                                pullProgress.notifyAll();
                        }*/
                        return p;
                }
        }

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20100519/5e3a719e/attachment.pgp>

Reply via email to