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
>

Reply via email to