You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/10/28 09:35:40 UTC
svn commit: r1190184 - in
/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db:
ColumnFamilySerializer.java ColumnSerializer.java DataTracker.java
Author: slebresne
Date: Fri Oct 28 07:35:39 2011
New Revision: 1190184
URL: http://svn.apache.org/viewvc?rev=1190184&view=rev
Log:
Improve error messages
Modified:
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnSerializer.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/DataTracker.java
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java?rev=1190184&r1=1190183&r2=1190184&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java Fri Oct 28 07:35:39 2011
@@ -85,10 +85,13 @@ public class ColumnFamilySerializer impl
Collection<IColumn> columns = columnFamily.getSortedColumns();
int count = columns.size();
dos.writeInt(count);
+ int i = 0;
for (IColumn column : columns)
{
columnFamily.getColumnSerializer().serialize(column, dos);
+ i++;
}
+ assert count == i: "CF size changed during serialization: was " + count + " initially but " + i + " written";
return count;
}
catch (IOException e)
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnSerializer.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnSerializer.java?rev=1190184&r1=1190183&r2=1190184&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnSerializer.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnSerializer.java Fri Oct 28 07:35:39 2011
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
import org.apache.cassandra.db.context.CounterContext;
import org.apache.cassandra.io.IColumnSerializer;
+import org.apache.cassandra.io.util.FileDataInput;
import org.apache.cassandra.utils.ByteBufferUtil;
public class ColumnSerializer implements IColumnSerializer
@@ -86,7 +87,16 @@ public class ColumnSerializer implements
{
ByteBuffer name = ByteBufferUtil.readWithShortLength(dis);
if (name.remaining() <= 0)
- throw new CorruptColumnException("invalid column name length " + name.remaining());
+ {
+ String format = "invalid column name length %d%s";
+ String details = "";
+ if (dis instanceof FileDataInput)
+ {
+ FileDataInput fdis = (FileDataInput)dis;
+ details = String.format(" (%s, %d bytes remaining)", fdis.getPath(), fdis.bytesRemaining());
+ }
+ throw new CorruptColumnException(String.format(format, name.remaining(), details));
+ }
int b = dis.readUnsignedByte();
if ((b & COUNTER_MASK) != 0)
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/DataTracker.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/DataTracker.java?rev=1190184&r1=1190183&r2=1190184&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/DataTracker.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/DataTracker.java Fri Oct 28 07:35:39 2011
@@ -570,6 +570,7 @@ public class DataTracker
{
ImmutableSet<SSTableReader> oldSet = ImmutableSet.copyOf(oldSSTables);
int newSSTablesSize = sstables.size() - oldSSTables.size() + Iterables.size(replacements);
+ assert newSSTablesSize >= Iterables.size(replacements) : String.format("Incoherent new size %d replacing %s by %s in %s", newSSTablesSize, oldSSTables, replacements, this);
List<SSTableReader> newSSTables = new ArrayList<SSTableReader>(newSSTablesSize);
for (SSTableReader sstable : sstables)
{
@@ -577,8 +578,14 @@ public class DataTracker
newSSTables.add(sstable);
}
Iterables.addAll(newSSTables, replacements);
- assert newSSTables.size() == newSSTablesSize;
+ assert newSSTables.size() == newSSTablesSize : String.format("Expecting new size of %d, got %d while replacing %s by %s in %s", newSSTablesSize, newSSTables.size(), oldSSTables, replacements, this);
return newSSTables;
}
+
+ @Override
+ public String toString()
+ {
+ return String.format("View(pending_count=%d, sstables=%s, compacting=%s)", memtablesPendingFlush.size(), sstables, compacting);
+ }
}
}