On Thu, Jan 29, 2009 at 12:34 AM, Matthew Toseland <toad at amphibian.dyndns.org> wrote: > On Wednesday 28 January 2009 04:12, Daniel Cheng wrote: >> On Tue, Jan 27, 2009 at 10:20 PM, <toad at freenetproject.org> wrote: >> > Author: toad >> > Date: 2009-01-27 14:20:37 +0000 (Tue, 27 Jan 2009) >> > New Revision: 25310 >> > >> > Modified: >> > branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java >> > Log: >> > Fix another of TheSeeker's transient NPEs, this time caused by FMS doing > transient ClientPutComplexDir's (why it does a putdir i have no idea...) >> > >> >> FMS insert a freesite for user who opt-in. > > Hmmm, what I heard was it used ClientPutComplexDir's for *lots* of things e.g. > message lists, not just the freesite ... is this true?
[overland]$ grep -r ClientPutComplexDir src/ src/freenet/introductionpuzzleinserter.cpp: message.SetName("ClientPutComplexDir"); src/freenet/messagelistinserter.cpp: message.SetName("ClientPutComplexDir"); src/freenet/siteinserter.cpp: message.SetName("ClientPutComplexDir"); src/freenet/trustlistinserter.cpp: message.SetName("ClientPutComplexDir"); It use ClientPutComplexDir for all USK. Messagelist USK are for backward compatibility with old client (iirc) and can be removed . No idea why ClientPutComplexDir is used, though. >> >> > >> > Modified: > branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java >> > =================================================================== >> > --- > branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java > 2009-01-27 14:20:15 UTC (rev 25309) >> > +++ > branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java > 2009-01-27 14:20:37 UTC (rev 25310) >> > @@ -465,8 +465,12 @@ >> > private void gotAllMetadata(ObjectContainer container, > ClientContext context) { >> > // This can be huge! Run it on its own transaction to > minimize the build up of stuff to commit >> > // and maximise the opportunities for garbage collection. >> > - context.jobRunner.queueRestartJob(runGotAllMetadata, > NativeThread.NORM_PRIORITY, container); >> > - context.jobRunner.queue(runGotAllMetadata, > NativeThread.NORM_PRIORITY, false); >> > + if(persistent()) { >> > + > context.jobRunner.queueRestartJob(runGotAllMetadata, > NativeThread.NORM_PRIORITY, container); >> > + context.jobRunner.queue(runGotAllMetadata, > NativeThread.NORM_PRIORITY, false); >> > + } else { >> > + innerGotAllMetadata(null, context); >> > + } >> > } >> > >> > private void innerGotAllMetadata(ObjectContainer container, > ClientContext context) { > > _______________________________________________ > Devl mailing list > Devl at freenetproject.org > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >