You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2004/03/18 06:11:45 UTC
DO NOT REPLY [Bug 27764] New: -
DefaultIncludeCacheManager does not release xml-serializer under some circumstances
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=27764>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=27764
DefaultIncludeCacheManager does not release xml-serializer under some circumstances
Summary: DefaultIncludeCacheManager does not release xml-
serializer under some circumstances
Product: Cocoon 2
Version: 2.1.4
Platform: All
OS/Version: Other
Status: NEW
Severity: Major
Priority: Other
Component: core
AssignedTo: dev@cocoon.apache.org
ReportedBy: cmoss@tvnz.co.nz
Currently the only reproducable test case I have for this is with the non
parallel caching CIncludeTransformer, however I suspect that the same will
happen for parallel caching:
The method "stream" within DefaultIncludeCacheManager does not release the xml-
serializer it uses. The code here:
serializer = (XMLSerializer)this.manager.lookup
(XMLSerializer.ROLE);
XMLTeePipe tee = new XMLTeePipe(handler, serializer);
SourceUtil.toSAX(source, tee);
SourceValidity[] validities = new SourceValidity[1];
validities[0] = session.getExpiresValidity();
CachedResponse response = new CachedResponse(validities,
(byte[])
serializer.getSAXFragment());
session.getCacheStorageProxy().put(uri, response);
Never releases the serializer. This means that a cocoon instance with many
instances of caching cincludes will soon exhibit a huge number of unused (and
unsable) xml-serializers. If the max-pool is not strict for the xml-
serializer component this will result in fairly rapid increase in irrecoverable
memory usage - trust me on this one ;)
I suspect that the parallel branch of this method will also suffer from this
problem, but I've not yet investigated - maybe someone using the background
caching can?
The fix for this is of course very simple, I'll attach a patch.