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