You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by mh...@apache.org on 2008/01/10 06:00:23 UTC
svn commit: r610673 -
/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
Author: mheath
Date: Wed Jan 9 21:00:22 2008
New Revision: 610673
URL: http://svn.apache.org/viewvc?rev=610673&view=rev
Log:
Fix for DIRMINA-503. Added catch for IOException that is being thrown because of this bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103988
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java?rev=610673&r1=610672&r2=610673&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java Wed Jan 9 21:00:22 2008
@@ -173,8 +173,16 @@
@Override
protected int transferFile(NioSession session, FileRegion region, int length) throws Exception {
- int writtenBytes = (int) region.getFileChannel().transferTo(region.getPosition(), length, session.getChannel());
- return writtenBytes;
+ try {
+ return (int) region.getFileChannel().transferTo(region.getPosition(), length, session.getChannel());
+ } catch (IOException e) {
+ // Check to see if the IOException is being thrown due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103988
+ if (e.getMessage().contains("Resource temporarily unavailable")) {
+ return 0;
+ } else {
+ throw e;
+ }
+ }
}
protected static class IoSessionIterator implements Iterator<NioSession> {