How to get more info on an IO exception

Discussion in 'Java' started by alejandrina, Aug 27, 2007.

  1. alejandrina

    alejandrina Guest

    Hi all,

    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
    alejandrina, Aug 27, 2007
    #1
    1. Advertising

  2. alejandrina wrote:
    >
    > 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?
    >

    As the error is in native code I'd guess that the OS might tell you more
    that filters up through Exceptions. Have you looked at the system
    logs, /var/log/messages in particular?


    --
    martin@ | Martin Gregorie
    gregorie. | Essex, UK
    org |
    Martin Gregorie, Aug 27, 2007
    #2
    1. Advertising

  3. alejandrina

    alejandrina Guest

    On Aug 27, 3:53 pm, Martin Gregorie <>
    wrote:
    > alejandrina wrote:
    >
    > > 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?

    >
    > As the error is in native code I'd guess that the OS might tell you more
    > that filters up through Exceptions. Have you looked at the system
    > logs, /var/log/messages in particular?
    >
    > --
    > 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.
    alejandrina, Aug 28, 2007
    #3
  4. alejandrina

    Roedy Green Guest

    On Mon, 27 Aug 2007 11:36:34 -0700, alejandrina <>
    wrote, quoted or indirectly quoted someone who said :

    >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
    Roedy Green, Aug 29, 2007
    #4
  5. alejandrina wrote:
    > Hi all,
    >
    > 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
    >


    Did getCause() have any info?

    --

    Knute Johnson
    email s/nospam/knute/
    Knute Johnson, Aug 29, 2007
    #5
  6. Roedy Green <> wrote:
    > On Mon, 27 Aug 2007 11:36:34 -0700, alejandrina <>
    > wrote, quoted or indirectly quoted someone who said :
    >>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.


    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 :)
    Andreas Leitgeb, Aug 29, 2007
    #6
  7. alejandrina

    alejandrina Guest

    On Aug 28, 11:38 pm, Knute Johnson <>
    wrote:
    > alejandrina wrote:
    > > Hi all,

    >
    > > 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

    >
    > Did getCause() have any info?
    >
    > --
    >
    > Knute Johnson
    > email s/nospam/knute/


    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...
    alejandrina, Aug 29, 2007
    #7
  8. alejandrina wrote:
    >> Did getCause() have any info?
    >>

    > 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...

    --

    Knute Johnson
    email s/nospam/knute/
    Knute Johnson, Aug 29, 2007
    #8
  9. alejandrina

    alejandrina Guest

    On Aug 29, 5:42 pm, Knute Johnson <>
    wrote:
    > alejandrina wrote:
    > >> Did getCause() have any info?

    >
    > > 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...
    >
    > --
    >
    > Knute Johnson
    > email s/nospam/knute/


    Yes, it's not quite software "engineering", eh?
    alejandrina, Aug 30, 2007
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Vasanth
    Replies:
    0
    Views:
    543
    Vasanth
    Jun 28, 2004
  2. VB Programmer
    Replies:
    1
    Views:
    347
    Steve C. Orr, MCSD
    Jul 1, 2003
  3. Michael
    Replies:
    4
    Views:
    409
    Matt Hammond
    Jun 26, 2006
  4. ilya

    get CPU info, RAM info

    ilya, Apr 8, 2010, in forum: Java
    Replies:
    43
    Views:
    5,973
    Mike Schilling
    Apr 19, 2010
  5. Robert Klemme

    With a Ruby Yell: more, more more!

    Robert Klemme, Sep 28, 2005, in forum: Ruby
    Replies:
    5
    Views:
    215
    Jeff Wood
    Sep 29, 2005
Loading...

Share This Page