You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2006/05/15 05:22:03 UTC

svn commit: r406515 - in /directory/trunks/mina/core/src/main/java/org/apache/mina/handler: StreamIoHandler.java support/IoSessionOutputStream.java

Author: trustin
Date: Sun May 14 20:22:03 2006
New Revision: 406515

URL: http://svn.apache.org/viewcvs?rev=406515&view=rev
Log:
Fixed issue: DIRMINA-214 (The InputStream that StreamIoHandler provides is closed too early.)
* StreamIoHandler doesn't close Input/OutputStream.  A user has to close them explicitly.
* Optimized memory usage of IoSessionOutputStream

Modified:
    directory/trunks/mina/core/src/main/java/org/apache/mina/handler/StreamIoHandler.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/handler/StreamIoHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/handler/StreamIoHandler.java?rev=406515&r1=406514&r2=406515&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/handler/StreamIoHandler.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/handler/StreamIoHandler.java Sun May 14 20:22:03 2006
@@ -117,17 +117,6 @@
     }
     
     /**
-     * Closes input stream.
-     */
-    public void sessionClosed( IoSession session )
-    {
-        IoSessionInputStream in = ( IoSessionInputStream ) session.getAttribute( KEY_IN );
-        IoSessionOutputStream out = ( IoSessionOutputStream ) session.getAttribute( KEY_OUT );
-        in.close();
-        out.close();
-    }
-
-    /**
      * Forwards read data to input stream.
      */
     public void messageReceived( IoSession session, Object buf )

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java?rev=406515&r1=406514&r2=406515&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java Sun May 14 20:22:03 2006
@@ -42,7 +42,7 @@
 
     public void close()
     {
-        session.close().join();
+        session.close();
     }
 
     public void flush()
@@ -51,23 +51,32 @@
 
     public void write( byte[] b, int off, int len )
     {
-        ByteBuffer buf = ByteBuffer.wrap( b, off, len );
-        buf.acquire(); // prevent from being pooled.
-        session.write( buf );
+        if( session.isConnected() )
+        {
+            ByteBuffer buf = ByteBuffer.wrap( b, off, len );
+            buf.acquire(); // prevent from being pooled.
+            session.write( buf );
+        }
     }
 
     public void write( byte[] b )
     {
-        ByteBuffer buf = ByteBuffer.wrap( b );
-        buf.acquire(); // prevent from being pooled.
-        session.write( buf );
+        if( session.isConnected() )
+        {
+            ByteBuffer buf = ByteBuffer.wrap( b );
+            buf.acquire(); // prevent from being pooled.
+            session.write( buf );
+        }
     }
 
     public void write( int b )
     {
-        ByteBuffer buf = ByteBuffer.allocate( 1 );
-        buf.put( ( byte ) b );
-        buf.flip();
-        session.write( buf );
+        if( session.isConnected() )
+        {
+            ByteBuffer buf = ByteBuffer.allocate( 1 );
+            buf.put( ( byte ) b );
+            buf.flip();
+            session.write( buf );
+        }
     }
 }