Reinhard Pötz wrote:
> Gabriel Gruber wrote:
>> Hi Joe,
>>
>> well, I don't have a replayable scenario yet (f.i. testcase), but it
>> seems that the exception comes after heavy use of cocoon pages within
>> our application.  
>> I suspect that cocoon:/ protocol usage AND/OR  inheritence of sitemap
>> calling (we "extend" cocoon-forms block to override specific resources)
>> might be the root of problem. But that is only a guess...
>>
>> We are using latest trunk versions of servlet-service-framework and jnet
>> subprojects.  I know that Grek made some changes in cocoon servlet
>> service framework in summer 2009, which went into the 1.2 release, which
>> we are using (since then no changes have been comitted).
>>
>> The problems reported here (exact same problem we have)
>>
>> http://jira.dspace.org/jira/browse/DS-253?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel
> 
> I had a look at the JNet code and haven't found a cause for your
> problems. The list of URLStreamHandlerFactory objects is stored in a
> thread local.
> 
> I propose that you add extensive logging to
> org.apache.cocoon.jnet.URLHandlerFactoryCollector,
> org.apache.cocoon.jnet.DynamicURLStreamHandlerFactory and
> org.apache.cocoon.jnet.URLStreamHandlerFactoryInstaller
> 
> Then create a special logging target for all org.apache.cocoon.jnet
> messages and make sure that you also log the tread ids.
> 
> Then try to reproduce your problems and you should get a hint from the
> logs what could be the cause of empty lists.
> 
> Maybe you can also provide a patch with the logging statements.

It might also be interesting to see, whether the exceptions changes (or
disappears) if you change line 42 of
o.a.c.jnet.DynamicURLStreamHandlerFactory to

list = Collections.synchronizedList(new
    LinkedList<URLStreamHandlerFactory>());


Steven and I experimented with linked lists today and didn't find a way
to produce a NPE as long as only a single thread accesses it. Those
exceptions only occur in the case of multiple threads modifying it
without synchronization.
So I expect that this change will just lead to an
IndexOutOfBoundException ...

-- 
Reinhard Pötz                           Managing Director, {Indoqa} GmbH
                         http://www.indoqa.com/en/people/reinhard.poetz/

Member of the Apache Software Foundation
Apache Cocoon Committer, PMC member                  reinh...@apache.org
________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org

Reply via email to