Federico Mariani created CAMEL-24111:
----------------------------------------

             Summary: camel-xslt: dead InputStream close logic in 
XsltBuilder.process() since the SourceHandlerFactory refactoring
                 Key: CAMEL-24111
                 URL: https://issues.apache.org/jira/browse/CAMEL-24111
             Project: Camel
          Issue Type: Bug
          Components: camel-xslt
    Affects Versions: 4.21.0
            Reporter: Federico Mariani


h3. Problem
{{XsltBuilder.process()}} still carries:

{code:java}
// the underlying input stream, which we need to close to avoid locking files 
or other resources
InputStream is = null;
try {
    Source source = getSourceHandlerFactory().getSource(exchange, this.source);
    ...
} finally {
    releaseTransformer(transformer);
    // IOHelper can handle if null
    IOHelper.close(is);   // 'is' is always null
}
{code}

Before CAMEL-13851 (3.0, refactoring that introduced {{SourceHandlerFactory}}), 
{{is}} was assigned from the body conversion and closed in {{finally}} - the 
comment documents the file-locking problem that close prevented. Since the 
refactoring the variable is never assigned, so the close logic is dead and the 
comment misleadingly implies protection that is not there.

h3. Verified impact
Probed empirically on current main with a close-tracking InputStream body 
through both {{xslt:}} and {{xslt-saxon:}}, for both a successful transform and 
a parse failure: in all four cases the SAX/StAX parser chain closes the stream, 
so there is *no observed leak on the standard paths*. The residual risk is 
limited to exotic paths where an exception fires after source creation but 
before the parser consumes the stream. Filed as cleanup, not as an active 
defect.

h3. Fix direction
Either restore real close semantics (close the stream/reader backing the 
created {{Source}} in the {{finally}} block) or remove the dead variable and 
the stale comment.
----
_This issue was researched and filed by Claude Code on behalf of [~fmariani] 
(GitHub: Croway), as part of a code review of camel-xslt and camel-xslt-saxon._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to