You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/01/14 17:07:42 UTC

svn commit: r899263 - /incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/

Author: jbellis
Date: Thu Jan 14 16:07:41 2010
New Revision: 899263

URL: http://svn.apache.org/viewvc?rev=899263&view=rev
Log:
return null instead of throwing exception from socket inner loop.  backport of CASSANDRA-675 from trunk by junrao.

Modified:
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentLengthState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentStreamState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/DoneState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolHeaderState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ReadNotCompleteException.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/StartState.java
    incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/TcpReader.java

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentLengthState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentLengthState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentLengthState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentLengthState.java Thu Jan 14 16:07:41 2010
@@ -35,7 +35,7 @@
         buffer_ = ByteBuffer.allocate(4);
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {        
         return doRead(buffer_);
     }

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentState.java Thu Jan 14 16:07:41 2010
@@ -34,7 +34,7 @@
         buffer_ = ByteBuffer.allocate(length_);
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {          
         return doRead(buffer_);
     }

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentStreamState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentStreamState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentStreamState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ContentStreamState.java Thu Jan 14 16:07:41 2010
@@ -59,7 +59,7 @@
         }
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {        
         SocketChannel socketChannel = stream_.getStream();
         InetSocketAddress remoteAddress = (InetSocketAddress)socketChannel.socket().getRemoteSocketAddress();
@@ -70,7 +70,7 @@
             {
                 bytesRead_ += fc_.transferFrom(socketChannel, bytesRead_, ContentStreamState.count_);
                 if ( bytesRead_ != streamContext_.getExpectedBytes() )
-                    throw new ReadNotCompleteException("Specified number of bytes have not been read from the Socket Channel");
+                    return null;
             }
             catch ( IOException ex )
             {

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/DoneState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/DoneState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/DoneState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/DoneState.java Thu Jan 14 16:07:41 2010
@@ -31,7 +31,7 @@
         bytes_ = bytes;
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {        
         morphState();
         return bytes_;

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolHeaderState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolHeaderState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolHeaderState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolHeaderState.java Thu Jan 14 16:07:41 2010
@@ -34,7 +34,7 @@
         buffer_ = ByteBuffer.allocate(4);
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {        
         return doRead(buffer_);
     }

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ProtocolState.java Thu Jan 14 16:07:41 2010
@@ -34,7 +34,7 @@
         buffer_ = ByteBuffer.allocate(16);
     }
 
-    public byte[] read() throws IOException, ReadNotCompleteException
+    public byte[] read() throws IOException
     {        
         return doRead(buffer_);
     }

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ReadNotCompleteException.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ReadNotCompleteException.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ReadNotCompleteException.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/ReadNotCompleteException.java Thu Jan 14 16:07:41 2010
@@ -1,34 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.cassandra.net.io;
-
-/**
- * Created by IntelliJ IDEA.
- * User: lakshman
- * Date: Aug 22, 2005
- * Time: 11:37:31 AM
- * To change this template use File | Settings | File Templates.
- */
-public class ReadNotCompleteException extends Exception
-{
-    ReadNotCompleteException(String message)
-    {
-        super(message);
-    }
-}

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/StartState.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/StartState.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/StartState.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/StartState.java Thu Jan 14 16:07:41 2010
@@ -31,11 +31,11 @@
         stream_ = stream;
     }
 
-    public abstract byte[] read() throws IOException, ReadNotCompleteException;
+    public abstract byte[] read() throws IOException;
     public abstract void morphState() throws IOException;
     public abstract void setContextData(Object data);
 
-    protected byte[] doRead(ByteBuffer buffer) throws IOException, ReadNotCompleteException
+    protected byte[] doRead(ByteBuffer buffer) throws IOException
     {        
         SocketChannel socketChannel = stream_.getStream();
         int bytesRead = socketChannel.read(buffer);     
@@ -48,8 +48,8 @@
             morphState();
         }
         else
-        {            
-            throw new ReadNotCompleteException("Specified number of bytes have not been read from the Socket Channel");
+        {        
+            return null;
         }
         return new byte[0];
     }

Modified: incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/TcpReader.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/TcpReader.java?rev=899263&r1=899262&r2=899263&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/TcpReader.java (original)
+++ incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/net/io/TcpReader.java Thu Jan 14 16:07:41 2010
@@ -24,6 +24,7 @@
 
 import org.apache.cassandra.net.ProtocolHeader;
 import org.apache.cassandra.net.TcpConnection;
+import org.apache.commons.lang.ArrayUtils;
 
 public class TcpReader
 {
@@ -88,15 +89,13 @@
     
     public byte[] read() throws IOException
     {
-        byte[] bytes = new byte[0];      
+        byte[] bytes = ArrayUtils.EMPTY_BYTE_ARRAY;      
         while ( socketState_ != null )
-        {
-            try
-            {                                                                      
-                bytes = socketState_.read();
-            }
-            catch ( ReadNotCompleteException e )
-            {                
+        {                          
+            bytes = socketState_.read();
+            if (bytes == null)
+            {
+                bytes = ArrayUtils.EMPTY_BYTE_ARRAY;
                 break;
             }
         }