You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by John Lee <jh...@gmail.com> on 2012/09/11 12:22:44 UTC
File2 Component's GenericFileOperationFailedException and its code attribute
Hello there,
I'm using camel-core version 2.9.1.
I have an application that uses the File2 Camel Component. In cases of
write failures, my application intends to take the system error codes (
http://docs.oracle.com/cd/E17952_01/refman-5.0-en/operating-system-error-codes.html),
and map it to an application level error code and send it to a client of my
application in a JMS response message.
I initially thought that the system error code would be reflected in the
facade exception GenericFileOperationFailedException. This doesn't appear
to be the case. Is this assertion correct?
So for example, if a directory doesn't have write permissions :
from("file:/tmp/data?noop=true").process(new Processor() {
public void process(Exchange exchange) throws Exception
{
System.out.println("Shall attempt to write a sample
file to a directory with no write permission");
}
}).to("file:/tmp/no_write_permission");
I have to dig into the GenericFileOperationFailedException to get the
FileNotFoundException, look for "Permission denied" in the
FileNotFoundException message, and if I find a match, then map to my
application-level error code. Somewhere in the exception chain the error
code provided by the OS is lost.
Any advice on how to best use GenericFileOperationFailedException in this
case?
As a user it would be more preferable if I could use the getCode() on the
GenericFileOperationFailedException to reliably get the system error code,
when a system error is generated.
BRs //John.
Re: File2 Component's GenericFileOperationFailedException and its
code attribute
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
The java.io.File API does *not* give back an codes etc. Its just
true|false, or IOException.
The getCode method is for other kind of file systems (components) that
offers that.
For example the FTP components.
On Tue, Sep 11, 2012 at 12:22 PM, John Lee <jh...@gmail.com> wrote:
> Hello there,
> I'm using camel-core version 2.9.1.
>
> I have an application that uses the File2 Camel Component. In cases of
> write failures, my application intends to take the system error codes (
> http://docs.oracle.com/cd/E17952_01/refman-5.0-en/operating-system-error-codes.html),
> and map it to an application level error code and send it to a client of my
> application in a JMS response message.
>
> I initially thought that the system error code would be reflected in the
> facade exception GenericFileOperationFailedException. This doesn't appear
> to be the case. Is this assertion correct?
>
> So for example, if a directory doesn't have write permissions :
>
> from("file:/tmp/data?noop=true").process(new Processor() {
> public void process(Exchange exchange) throws Exception
> {
> System.out.println("Shall attempt to write a sample
> file to a directory with no write permission");
> }
> }).to("file:/tmp/no_write_permission");
>
> I have to dig into the GenericFileOperationFailedException to get the
> FileNotFoundException, look for "Permission denied" in the
> FileNotFoundException message, and if I find a match, then map to my
> application-level error code. Somewhere in the exception chain the error
> code provided by the OS is lost.
>
> Any advice on how to best use GenericFileOperationFailedException in this
> case?
> As a user it would be more preferable if I could use the getCode() on the
> GenericFileOperationFailedException to reliably get the system error code,
> when a system error is generated.
> BRs //John.
--
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen