Author: brandonwilliams
Date: Thu Dec 22 16:41:21 2011
New Revision: 1222340

URL: http://svn.apache.org/viewvc?rev=1222340&view=rev
Log:
Truncate throws TOE on timeout instead of UA.
Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-3651

Modified:
    cassandra/trunk/interface/cassandra.thrift
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java

Modified: cassandra/trunk/interface/cassandra.thrift
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.thrift?rev=1222340&r1=1222339&r2=1222340&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.thrift (original)
+++ cassandra/trunk/interface/cassandra.thrift Thu Dec 22 16:41:21 2011
@@ -46,7 +46,7 @@ namespace rb CassandraThrift
 #           for every edit that doesn't result in a change to major/minor.
 #
 # See the Semantic Versioning Specification (SemVer) http://semver.org.
-const string VERSION = "19.20.0"
+const string VERSION = "19.22.1"
 
 
 #
@@ -599,7 +599,7 @@ service Cassandra {
    some hosts are down.
   */
   void truncate(1:required string cfname)
-       throws (1: InvalidRequestException ire, 2: UnavailableException ue),
+       throws (1: InvalidRequestException ire, 2: UnavailableException ue, 3: 
TimedOutException te),
 
 
     

Modified: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java?rev=1222340&r1=1222339&r2=1222340&view=diff
==============================================================================
--- 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
 (original)
+++ 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
 Thu Dec 22 16:41:21 2011
@@ -186,7 +186,7 @@ public class Cassandra {
      * 
      * @param cfname
      */
-    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, org.apache.thrift.TException;
+    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, TimedOutException, org.apache.thrift.TException;
 
     /**
      * for each schema version present in the cluster, returns a list of nodes 
at that version.
@@ -1070,7 +1070,7 @@ public class Cassandra {
       return;
     }
 
-    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, org.apache.thrift.TException
+    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, TimedOutException, org.apache.thrift.TException
     {
       send_truncate(cfname);
       recv_truncate();
@@ -1086,7 +1086,7 @@ public class Cassandra {
       oprot_.getTransport().flush();
     }
 
-    public void recv_truncate() throws InvalidRequestException, 
UnavailableException, org.apache.thrift.TException
+    public void recv_truncate() throws InvalidRequestException, 
UnavailableException, TimedOutException, org.apache.thrift.TException
     {
       org.apache.thrift.protocol.TMessage msg = iprot_.readMessageBegin();
       if (msg.type == org.apache.thrift.protocol.TMessageType.EXCEPTION) {
@@ -1106,6 +1106,9 @@ public class Cassandra {
       if (result.ue != null) {
         throw result.ue;
       }
+      if (result.te != null) {
+        throw result.te;
+      }
       return;
     }
 
@@ -2422,7 +2425,7 @@ public class Cassandra {
         prot.writeMessageEnd();
       }
 
-      public void getResult() throws InvalidRequestException, 
UnavailableException, org.apache.thrift.TException {
+      public void getResult() throws InvalidRequestException, 
UnavailableException, TimedOutException, org.apache.thrift.TException {
         if (getState() != 
org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -3683,6 +3686,8 @@ public class Cassandra {
           result.ire = ire;
         } catch (UnavailableException ue) {
           result.ue = ue;
+        } catch (TimedOutException te) {
+          result.te = te;
         } catch (Throwable th) {
           LOGGER.error("Internal error processing truncate", th);
           org.apache.thrift.TApplicationException x = new 
org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR,
 "Internal error processing truncate");
@@ -9353,6 +9358,8 @@ public class Cassandra {
 
     private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+        __isset_bit_vector = new BitSet(1);
         read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
@@ -20160,14 +20167,17 @@ public class Cassandra {
 
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("ire", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField UE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("ue", 
org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField TE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("te", 
org.apache.thrift.protocol.TType.STRUCT, (short)3);
 
     public InvalidRequestException ire;
     public UnavailableException ue;
+    public TimedOutException te;
 
     /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       IRE((short)1, "ire"),
-      UE((short)2, "ue");
+      UE((short)2, "ue"),
+      TE((short)3, "te");
 
       private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
 
@@ -20186,6 +20196,8 @@ public class Cassandra {
             return IRE;
           case 2: // UE
             return UE;
+          case 3: // TE
+            return TE;
           default:
             return null;
         }
@@ -20234,6 +20246,8 @@ public class Cassandra {
           new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.UE, new 
org.apache.thrift.meta_data.FieldMetaData("ue", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.TE, new 
org.apache.thrift.meta_data.FieldMetaData("te", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(truncate_result.class,
 metaDataMap);
     }
@@ -20243,11 +20257,13 @@ public class Cassandra {
 
     public truncate_result(
       InvalidRequestException ire,
-      UnavailableException ue)
+      UnavailableException ue,
+      TimedOutException te)
     {
       this();
       this.ire = ire;
       this.ue = ue;
+      this.te = te;
     }
 
     /**
@@ -20260,6 +20276,9 @@ public class Cassandra {
       if (other.isSetUe()) {
         this.ue = new UnavailableException(other.ue);
       }
+      if (other.isSetTe()) {
+        this.te = new TimedOutException(other.te);
+      }
     }
 
     public truncate_result deepCopy() {
@@ -20270,6 +20289,7 @@ public class Cassandra {
     public void clear() {
       this.ire = null;
       this.ue = null;
+      this.te = null;
     }
 
     public InvalidRequestException getIre() {
@@ -20320,6 +20340,30 @@ public class Cassandra {
       }
     }
 
+    public TimedOutException getTe() {
+      return this.te;
+    }
+
+    public truncate_result setTe(TimedOutException te) {
+      this.te = te;
+      return this;
+    }
+
+    public void unsetTe() {
+      this.te = null;
+    }
+
+    /** Returns true if field te is set (has been assigned a value) and false 
otherwise */
+    public boolean isSetTe() {
+      return this.te != null;
+    }
+
+    public void setTeIsSet(boolean value) {
+      if (!value) {
+        this.te = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case IRE:
@@ -20338,6 +20382,14 @@ public class Cassandra {
         }
         break;
 
+      case TE:
+        if (value == null) {
+          unsetTe();
+        } else {
+          setTe((TimedOutException)value);
+        }
+        break;
+
       }
     }
 
@@ -20349,6 +20401,9 @@ public class Cassandra {
       case UE:
         return getUe();
 
+      case TE:
+        return getTe();
+
       }
       throw new IllegalStateException();
     }
@@ -20364,6 +20419,8 @@ public class Cassandra {
         return isSetIre();
       case UE:
         return isSetUe();
+      case TE:
+        return isSetTe();
       }
       throw new IllegalStateException();
     }
@@ -20399,6 +20456,15 @@ public class Cassandra {
           return false;
       }
 
+      boolean this_present_te = true && this.isSetTe();
+      boolean that_present_te = true && that.isSetTe();
+      if (this_present_te || that_present_te) {
+        if (!(this_present_te && that_present_te))
+          return false;
+        if (!this.te.equals(that.te))
+          return false;
+      }
+
       return true;
     }
 
@@ -20416,6 +20482,11 @@ public class Cassandra {
       if (present_ue)
         builder.append(ue);
 
+      boolean present_te = true && (isSetTe());
+      builder.append(present_te);
+      if (present_te)
+        builder.append(te);
+
       return builder.toHashCode();
     }
 
@@ -20447,6 +20518,16 @@ public class Cassandra {
           return lastComparison;
         }
       }
+      lastComparison = 
Boolean.valueOf(isSetTe()).compareTo(typedOther.isSetTe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetTe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.te, 
typedOther.te);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -20480,6 +20561,14 @@ public class Cassandra {
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
             }
             break;
+          case 3: // TE
+            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+              this.te = new TimedOutException();
+              this.te.read(iprot);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
         }
@@ -20502,6 +20591,10 @@ public class Cassandra {
         oprot.writeFieldBegin(UE_FIELD_DESC);
         this.ue.write(oprot);
         oprot.writeFieldEnd();
+      } else if (this.isSetTe()) {
+        oprot.writeFieldBegin(TE_FIELD_DESC);
+        this.te.write(oprot);
+        oprot.writeFieldEnd();
       }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
@@ -20527,6 +20620,14 @@ public class Cassandra {
         sb.append(this.ue);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("te:");
+      if (this.te == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.te);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -26017,8 +26118,6 @@ public class Cassandra {
 
     private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
       try {
-        // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
-        __isset_bit_vector = new BitSet(1);
         read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);

Modified: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java?rev=1222340&r1=1222339&r2=1222340&view=diff
==============================================================================
--- 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
 (original)
+++ 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
 Thu Dec 22 16:41:21 2011
@@ -44,6 +44,6 @@ import org.slf4j.LoggerFactory;
 
 public class Constants {
 
-  public static final String VERSION = "19.22.0";
+  public static final String VERSION = "19.22.1";
 
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1222340&r1=1222339&r2=1222340&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java 
Thu Dec 22 16:41:21 2011
@@ -1072,7 +1072,7 @@ public class CassandraServer implements 
             throw new SchemaDisagreementException();
     }
 
-    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, TException
+    public void truncate(String cfname) throws InvalidRequestException, 
UnavailableException, TimedOutException, TException
     {
         logger.debug("truncating {} in {}", cfname, state().getKeyspace());
         state().hasColumnFamilyAccess(cfname, Permission.WRITE);
@@ -1090,7 +1090,7 @@ public class CassandraServer implements 
         }
         catch (TimeoutException e)
         {
-            throw (UnavailableException) new 
UnavailableException().initCause(e);
+            throw new TimedOutException();
         }
         catch (IOException e)
         {


Reply via email to