We have a process that occassionally throws an I/O Exception when
trying to lock a Linux file for writing.
java.io.IOException: Input/output error
at sun.nio.ch.FileChannelImpl.lock0(Native Method)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:
882)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
at
com.pdx.science.utils.SyncFileWriter.write(SyncFileWriter.java:58)
at
com.pdx.science.pm.learning.PMResultRecorder.record(PMResultRecorder.java:
49)
at
com.pdx.science.pm.learning.SVMModelSelector.processValueSet(SVMModelSelector.java:
279)
at
com.pdx.science.pm.learning.SVMModelSelector.process(SVMModelSelector.java:
178)
at
com.pdx.science.pm.learning.SVMModelSelector.run(SVMModelSelector.java:
134)
at
com.pdx.science.pm.learning.SVMModelSelector.main(SVMModelSelector.java:
589)
We'd love to know what is actually happening (network error, NFS
error...) Is there any more information that can be obtained from the
I/O Exception? How does one get it?
Thanks,
Alejandrina
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Nothing there that we can see. I wanted to see if there was a
mechanism to "unwrap" the exception to get more info, but I guess
there is no such thing.
>We'd love to know what is actually happening (network error, NFS
>error...) Is there any more information that can be obtained from the
>I/O Exception? How does one get it?
I suppose you could discover the precise class of the IOExceptions you
are getting by dumping e.getClass in your catch block. , then add a
catch clause for that particular class ahead of the general
IOException catch,, then you have access to any additional fields or
methods it has.
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
Did getCause() have any info?
--
Knute Johnson
email s/nospam/knute/
In case this doesn't work out (that is: the getClass() also returns
just IOException), then maybe further information is just an
ioExc.getCause() away :-)
I did a test with a manufactured IOEception. getCause() returned the
exception message. And of course now that we have a catch for
IOException, the app is not failing, so I don't know what a real
IOException yields...
Sometimes it is just magic. I've got a program in the field that has
been running 24/7 for the last year. Then all of a sudden it starts
having problems. I make about six changes, requiring me to stay up to
all hours because they can't have it down in the daytime, and then it
stops just as mysteriously as it started.
And if it is running on Windows...
Yes, it's not quite software "engineering", eh?