[ https://issues.apache.org/activemq/browse/CAMEL-2549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59036#action_59036 ]
Thomas Demande commented on CAMEL-2549: --------------------------------------- I'm trying to use this component, and I'm currently seeing 2 problems: - When invoking a program that fills {{stdErr}}, the content of that cannot be easily accessed without a deep inspection of the ExecResult. I would have expected that the Converter would send the ExecResult {{stdErr()}} if it is not null. - When *not* using the {{outFile}} parameter, the ExecResult {{stdOut}} (but also the {{stdErr}}) have to be reset, otherwise the Converter will return nothing as Body. I'm using the latest revision of the component, and currently having such a route (in a Windows environment): {code:xml} (...) <to uri="exec:dir"/> <to uri="log:myLogger /> (...) {code} results in: {code}INFO: Exchange[BodyType:org.apache.camel.component.exec.ExecResult, Body:]{code} without the reset(). And, (worse), using the example {code:xml} (...) <to uri="exec:java?args=-version"/> <to uri="log:myLogger /> (...) {code} results in{code} INFO: Exchange[BodyType:org.apache.camel.component.exec.ExecResult, Body:org.apache.camel.component.exec.execres...@14382c6]{code} as in this case it is in fact the {{stdErr}} that is filled. Here's a diff excerpt (thrown exceptions should be also changed) that summarizes the solutions I quickly made to get it working like I thought it would be: {code:java} Index: components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecResultConverter.java =================================================================== @@ -105,10 +103,16 @@ if (execResult.getCommand().getOutFile() != null) { return new FileInputStream(execResult.getCommand().getOutFile()); } else { - if (execResult.getStdout() == null) { - LOG.warn("Received null stdout of the ExecResult for conversion!"); - } - return execResult.getStdout(); + if(execResult.getStderr() != null){ + execResult.getStderr().reset(); + return execResult.getStderr(); + } else { + if (execResult.getStdout() == null) { + LOG.warn("Received null stdout of the ExecResult for conversion!"); + } + execResult.getStdout().reset(); + return execResult.getStdout(); + } } } } {code} I may be wrong, but I think that such a behavior would be more usable. Regards, Thomas > Camel Exec component > -------------------- > > Key: CAMEL-2549 > URL: https://issues.apache.org/activemq/browse/CAMEL-2549 > Project: Apache Camel > Issue Type: New Feature > Affects Versions: 2.3.0 > Environment: Tested on Windows XP and Linux > Reporter: Mitko Kolev > Assignee: Martin Krasser > Fix For: 2.3.0 > > Attachments: camel-exec-3.diff, camel-exec-component-feedback.zip, > camel-exec-patch.diff, camel-exec-patch2.diff, exec-wiki.txt > > -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.