Unico Hommes wrote:
Vadim Gritsenko wrote:

Hey all,

There is some issue with cocoon:// protocol that I can't wrap my head around... It is blocking 2.1.6 release. NullPointerException occurs when request's pipeline uses / includes another pipeline via cocoon:// protocol. It is reproducable using multiple samples:

  http://localhost:8888/samples/aggregation/aggregate
  http://localhost:8888/samples/aggregation/aggregate2
  http://localhost:8888/samples/modules/index.html
  http://localhost:8888/samples/test/reader-mime-type/test20.html

etc. Last one is the simpliest. Stacktrace in the last case is below. When trying to debug I found out this sequence:
* "cocoon://test10.html" reader: ResourceReader.recycle()
* "cocoon://test10.html" source: SitemapSource.reset()
* CocoonComponentManager.endProcessing()
* EnvironmentWrapper instance: AbstractEnvironment.finishProcessing()
Here sourceResolver is set to null!
* Back to CocoonComponentManager.endProcessing() which calls:
* EnvironmentDescription.release()
* "test10.html" reader: ResourceReader.recycle()
* EnvironmentWrapper instance: AbstractEnvironment.release()
Here sourceResolver is already null!


Any ideas?



I just committed a fix for this. My rationale:

CocoonComponentManager.EnvironmentDescriptor depends on Environment. But in CocoonComponentManager.endProcessing EnvironmentDescriptor is released *before* Environment is cleaned. According to the direction of the dependency this should be the other way around.

I already tried this; but it failed with something else... I'll re-try and post results...


Vadim

Reply via email to