Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/thrift
diff --git a/lib/as3/src/org/apache/thrift/TApplicationError.as b/lib/as3/src/org/apache/thrift/TApplicationError.as
index aa3278d..3448fce 100644
--- a/lib/as3/src/org/apache/thrift/TApplicationError.as
+++ b/lib/as3/src/org/apache/thrift/TApplicationError.as
@@ -42,11 +42,14 @@
public static const MISSING_RESULT:int = 5;
public static const INTERNAL_ERROR:int = 6;
public static const PROTOCOL_ERROR:int = 7;
+ public static const INVALID_TRANSFORM:int = 8;
+ public static const INVALID_PROTOCOL:int = 9;
+ public static const UNSUPPORTED_CLIENT_TYPE:int = 10;
public function TApplicationError(type:int = UNKNOWN, message:String = "") {
super(message, type);
}
-
+
public static function read(iprot:TProtocol):TApplicationError {
var field:TField;
iprot.readStructBegin();
diff --git a/lib/c_glib/src/thrift/thrift_application_exception.h b/lib/c_glib/src/thrift/thrift_application_exception.h
index be5a8c0..580f4fc 100644
--- a/lib/c_glib/src/thrift/thrift_application_exception.h
+++ b/lib/c_glib/src/thrift/thrift_application_exception.h
@@ -67,7 +67,10 @@
THRIFT_APPLICATION_EXCEPTION_ERROR_BAD_SEQUENCE_ID,
THRIFT_APPLICATION_EXCEPTION_ERROR_MISSING_RESULT,
THRIFT_APPLICATION_EXCEPTION_ERROR_INTERNAL_ERROR,
- THRIFT_APPLICATION_EXCEPTION_ERROR_PROTOCOL_ERROR
+ THRIFT_APPLICATION_EXCEPTION_ERROR_PROTOCOL_ERROR,
+ THRIFT_APPLICATION_EXCEPTION_ERROR_INVALID_TRANSFORM,
+ THRIFT_APPLICATION_EXCEPTION_ERROR_INVALID_PROTOCOL,
+ THRIFT_APPLICATION_EXCEPTION_ERROR_UNSUPPORTED_CLIENT_TYPE
} ThriftApplicationExceptionError;
/* define error domain for GError */
diff --git a/lib/cocoa/src/TApplicationException.h b/lib/cocoa/src/TApplicationException.h
index 0ad0b9a..7b027d6 100644
--- a/lib/cocoa/src/TApplicationException.h
+++ b/lib/cocoa/src/TApplicationException.h
@@ -28,7 +28,10 @@
TApplicationException_BAD_SEQUENCE_ID = 4,
TApplicationException_MISSING_RESULT = 5,
TApplicationException_INTERNAL_ERROR = 6,
- TApplicationException_PROTOCOL_ERROR = 7
+ TApplicationException_PROTOCOL_ERROR = 7,
+ TApplicationException_INVALID_TRANSFORM = 8,
+ TApplicationException_INVALID_PROTOCOL = 9,
+ TApplicationException_UNSUPPORTED_CLIENT_TYPE = 10
};
// FIXME
diff --git a/lib/cocoa/src/TApplicationException.m b/lib/cocoa/src/TApplicationException.m
index 66c2f2b..974dfc5 100644
--- a/lib/cocoa/src/TApplicationException.m
+++ b/lib/cocoa/src/TApplicationException.m
@@ -45,6 +45,21 @@
case TApplicationException_MISSING_RESULT:
name = @"Missing result";
break;
+ case TApplicationException_INTERNAL_ERROR:
+ name = @"Internal error";
+ break;
+ case TApplicationException_PROTOCOL_ERROR:
+ name = @"Protocol error";
+ break;
+ case TApplicationException_INVALID_TRANSFORM:
+ name = @"Invalid transform";
+ break;
+ case TApplicationException_INVALID_PROTOCOL:
+ name = @"Invalid protocol";
+ break;
+ case TApplicationException_UNSUPPORTED_CLIENT_TYPE:
+ name = @"Unsupported client type";
+ break;
default:
name = @"Unknown";
break;
diff --git a/lib/cpp/src/thrift/TApplicationException.h b/lib/cpp/src/thrift/TApplicationException.h
index 79f026d..d32a21d 100644
--- a/lib/cpp/src/thrift/TApplicationException.h
+++ b/lib/cpp/src/thrift/TApplicationException.h
@@ -43,7 +43,10 @@
BAD_SEQUENCE_ID = 4,
MISSING_RESULT = 5,
INTERNAL_ERROR = 6,
- PROTOCOL_ERROR = 7
+ PROTOCOL_ERROR = 7,
+ INVALID_TRANSFORM = 8,
+ INVALID_PROTOCOL = 9,
+ UNSUPPORTED_CLIENT_TYPE = 10
};
TApplicationException() :
@@ -78,13 +81,18 @@
virtual const char* what() const throw() {
if (message_.empty()) {
switch (type_) {
- case UNKNOWN : return "TApplicationException: Unknown application exception";
- case UNKNOWN_METHOD : return "TApplicationException: Unknown method";
- case INVALID_MESSAGE_TYPE : return "TApplicationException: Invalid message type";
- case WRONG_METHOD_NAME : return "TApplicationException: Wrong method name";
- case BAD_SEQUENCE_ID : return "TApplicationException: Bad sequence identifier";
- case MISSING_RESULT : return "TApplicationException: Missing result";
- default : return "TApplicationException: (Invalid exception type)";
+ case UNKNOWN : return "TApplicationException: Unknown application exception";
+ case UNKNOWN_METHOD : return "TApplicationException: Unknown method";
+ case INVALID_MESSAGE_TYPE : return "TApplicationException: Invalid message type";
+ case WRONG_METHOD_NAME : return "TApplicationException: Wrong method name";
+ case BAD_SEQUENCE_ID : return "TApplicationException: Bad sequence identifier";
+ case MISSING_RESULT : return "TApplicationException: Missing result";
+ case INTERNAL_ERROR : return "TApplicationException: Internal error";
+ case PROTOCOL_ERROR : return "TApplicationException: Protocol error";
+ case INVALID_TRANSFORM : return "TApplicationException: Invalid transform";
+ case INVALID_PROTOCOL : return "TApplicationException: Invalid protocol";
+ case UNSUPPORTED_CLIENT_TYPE : return "TApplicationException: Unsupported client type";
+ default : return "TApplicationException: (Invalid exception type)";
};
} else {
return message_.c_str();
diff --git a/lib/cpp/src/thrift/transport/THttpServer.cpp b/lib/cpp/src/thrift/transport/THttpServer.cpp
index 1b3fe7b..1135270 100644
--- a/lib/cpp/src/thrift/transport/THttpServer.cpp
+++ b/lib/cpp/src/thrift/transport/THttpServer.cpp
@@ -73,6 +73,34 @@
// POST method ok, looking for content.
return true;
}
+ else if (strcmp(method, "OPTIONS") == 0) {
+ // preflight OPTIONS method, we don't need further content.
+ // how to graciously close connection?
+ uint8_t* buf;
+ uint32_t len;
+ writeBuffer_.getBuffer(&buf, &len);
+
+ // Construct the HTTP header
+ std::ostringstream h;
+ h <<
+ "HTTP/1.1 200 OK" << CRLF <<
+ "Date: " << getTimeRFC1123() << CRLF <<
+ "Access-Control-Allow-Origin: *" << CRLF <<
+ "Access-Control-Allow-Methods: POST, OPTIONS" << CRLF <<
+ "Access-Control-Allow-Headers: Content-Type" << CRLF <<
+ CRLF;
+ string header = h.str();
+
+ // Write the header, then the data, then flush
+ transport_->write((const uint8_t*)header.c_str(), header.size());
+ transport_->write(buf, len);
+ transport_->flush();
+
+ // Reset the buffer and header variables
+ writeBuffer_.resetBuffer();
+ readHeaders_ = true;
+ return true;
+ }
throw TTransportException(string("Bad Status (unsupported method): ") + status);
}
diff --git a/lib/csharp/src/TApplicationException.cs b/lib/csharp/src/TApplicationException.cs
index 57dd375..9aaf6f7 100644
--- a/lib/csharp/src/TApplicationException.cs
+++ b/lib/csharp/src/TApplicationException.cs
@@ -130,7 +130,12 @@
InvalidMessageType,
WrongMethodName,
BadSequenceID,
- MissingResult
+ MissingResult,
+ InternalError,
+ ProtocolError,
+ InvalidTransform,
+ InvalidProtocol,
+ UnsupportedClientType
}
}
}
diff --git a/lib/d/src/thrift/protocol/base.d b/lib/d/src/thrift/protocol/base.d
index 97cbb4d..bd65b71 100644
--- a/lib/d/src/thrift/protocol/base.d
+++ b/lib/d/src/thrift/protocol/base.d
@@ -345,7 +345,10 @@
BAD_SEQUENCE_ID = 4, ///
MISSING_RESULT = 5, ///
INTERNAL_ERROR = 6, ///
- PROTOCOL_ERROR = 7 ///
+ PROTOCOL_ERROR = 7, ///
+ INVALID_TRANSFORM = 8, ///
+ INVALID_PROTOCOL = 9, ///
+ UNSUPPORTED_CLIENT_TYPE = 10 ///
}
///
@@ -358,6 +361,11 @@
case Type.WRONG_METHOD_NAME: return "Wrong method name";
case Type.BAD_SEQUENCE_ID: return "Bad sequence identifier";
case Type.MISSING_RESULT: return "Missing result";
+ case Type.INTERNAL_ERROR: return "Internal error";
+ case Type.PROTOCOL_ERROR: return "Protocol error";
+ case Type.INVALID_TRANSFORM: return "Invalid transform";
+ case Type.INVALID_PROTOCOL: return "Invalid protocol";
+ case Type.UNSUPPORTED_CLIENT_TYPE: return "Unsupported client type";
default: return "(Invalid exception type)";
}
}
diff --git a/lib/delphi/src/Thrift.pas b/lib/delphi/src/Thrift.pas
index 189640a..44f12d7 100644
--- a/lib/delphi/src/Thrift.pas
+++ b/lib/delphi/src/Thrift.pas
@@ -43,7 +43,12 @@
InvalidMessageType,
WrongMethodName,
BadSequenceID,
- MissingResult
+ MissingResult,
+ InternalError,
+ ProtocolError,
+ InvalidTransform,
+ InvalidProtocol,
+ UnsupportedClientType
);
{$SCOPEDENUMS OFF}
private
diff --git a/lib/erl/include/thrift_constants.hrl b/lib/erl/include/thrift_constants.hrl
index 61d8e1a..dbfaaf6 100644
--- a/lib/erl/include/thrift_constants.hrl
+++ b/lib/erl/include/thrift_constants.hrl
@@ -53,4 +53,6 @@
-define(TApplicationException_MISSING_RESULT, 5).
-define(TApplicationException_INTERNAL_ERROR, 6).
-define(TApplicationException_PROTOCOL_ERROR, 7).
-
+-define(TApplicationException_INVALID_TRANSFORM, 8).
+-define(TApplicationException_INVALID_PROTOCOL, 9).
+-define(TApplicationException_UNSUPPORTED_CLIENT_TYPE, 10).
diff --git a/lib/go/thrift/tapplication_exception.go b/lib/go/thrift/tapplication_exception.go
index fc8bf2e..6b7a75d 100644
--- a/lib/go/thrift/tapplication_exception.go
+++ b/lib/go/thrift/tapplication_exception.go
@@ -32,6 +32,9 @@
MISSING_RESULT = 5
INTERNAL_ERROR = 6
PROTOCOL_ERROR = 7
+ INVALID_TRANSFORM = 8
+ INVALID_PROTOCOL = 9
+ UNSUPPORTED_CLIENT_TYPE = 10
)
diff --git a/lib/hs/src/Thrift.hs b/lib/hs/src/Thrift.hs
index 42f5d32..65a2208 100644
--- a/lib/hs/src/Thrift.hs
+++ b/lib/hs/src/Thrift.hs
@@ -54,6 +54,9 @@
| AE_MISSING_RESULT
| AE_INTERNAL_ERROR
| AE_PROTOCOL_ERROR
+ | AE_INVALID_TRANSFORM
+ | AE_INVALID_PROTOCOL
+ | AE_UNSUPPORTED_CLIENT_TYPE
deriving ( Eq, Show, Typeable )
instance Enum AppExnType where
@@ -65,6 +68,9 @@
toEnum 5 = AE_MISSING_RESULT
toEnum 6 = AE_INTERNAL_ERROR
toEnum 7 = AE_PROTOCOL_ERROR
+ toEnum 8 = AE_INVALID_TRANSFORM
+ toEnum 9 = AE_INVALID_PROTOCOL
+ toEnum 10 = AE_UNSUPPORTED_CLIENT_TYPE
toEnum t = error $ "Invalid AppExnType " ++ show t
fromEnum AE_UNKNOWN = 0
@@ -75,6 +81,9 @@
fromEnum AE_MISSING_RESULT = 5
fromEnum AE_INTERNAL_ERROR = 6
fromEnum AE_PROTOCOL_ERROR = 7
+ fromEnum AE_INVALID_TRANSFORM = 8
+ fromEnum AE_INVALID_PROTOCOL = 9
+ fromEnum AE_UNSUPPORTED_CLIENT_TYPE = 10
data AppExn = AppExn { ae_type :: AppExnType, ae_message :: String }
deriving ( Show, Typeable )
diff --git a/lib/java/src/org/apache/thrift/TApplicationException.java b/lib/java/src/org/apache/thrift/TApplicationException.java
index c294fc3..b54a5ce 100644
--- a/lib/java/src/org/apache/thrift/TApplicationException.java
+++ b/lib/java/src/org/apache/thrift/TApplicationException.java
@@ -45,6 +45,9 @@
public static final int MISSING_RESULT = 5;
public static final int INTERNAL_ERROR = 6;
public static final int PROTOCOL_ERROR = 7;
+ public static final int INVALID_TRANSFORM = 8;
+ public static final int INVALID_PROTOCOL = 9;
+ public static final int UNSUPPORTED_CLIENT_TYPE = 10;
protected int type_ = UNKNOWN;
diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index dccae52..169ae5c 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -48,7 +48,8 @@
}
// Flag for stopping the server
- private volatile boolean stopped_ = true;
+ // Please see THRIFT-1795 for the usage of this flag
+ private volatile boolean stopped_ = false;
private SelectAcceptThread selectAcceptThread_;
@@ -68,7 +69,6 @@
// start the selector
try {
selectAcceptThread_ = new SelectAcceptThread((TNonblockingServerTransport)serverTransport_);
- stopped_ = false;
selectAcceptThread_.start();
return true;
} catch (IOException e) {
diff --git a/lib/java/src/org/apache/thrift/server/TSimpleServer.java b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
index 6e92801..4dfc176 100644
--- a/lib/java/src/org/apache/thrift/server/TSimpleServer.java
+++ b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
@@ -35,14 +35,14 @@
private static final Logger LOGGER = LoggerFactory.getLogger(TSimpleServer.class.getName());
- private boolean stopped_ = false;
+ // Please see THRIFT-1795 for the usage of this flag
+ private volatile boolean stopped_ = false;
public TSimpleServer(AbstractServerArgs args) {
super(args);
}
public void serve() {
- stopped_ = false;
try {
serverTransport_.listen();
} catch (TTransportException ttx) {
diff --git a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
index 9a68c76..19e51af 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
@@ -73,7 +73,8 @@
private ExecutorService executorService_;
// Flag for stopping the server
- private volatile boolean stopped_;
+ // Please see THRIFT-1795 for the usage of this flag
+ private volatile boolean stopped_ = false;
private final TimeUnit stopTimeoutUnit;
diff --git a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
index 04179e6..23ec842 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
@@ -181,7 +181,8 @@
}
// Flag for stopping the server
- private volatile boolean stopped_ = true;
+ // Please see THRIFT-1795 for the usage of this flag
+ private volatile boolean stopped_ = false;
// The thread handling all accepts
private AcceptThread acceptThread;
@@ -220,7 +221,6 @@
}
acceptThread = new AcceptThread((TNonblockingServerTransport) serverTransport_,
createSelectorThreadLoadBalancer(selectorThreads));
- stopped_ = false;
for (SelectorThread thread : selectorThreads) {
thread.start();
}
diff --git a/lib/java/src/org/apache/thrift/transport/THttpClient.java b/lib/java/src/org/apache/thrift/transport/THttpClient.java
index 30f59ee..5a5b37c 100644
--- a/lib/java/src/org/apache/thrift/transport/THttpClient.java
+++ b/lib/java/src/org/apache/thrift/transport/THttpClient.java
@@ -29,6 +29,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
@@ -36,7 +37,6 @@
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.util.EntityUtils;
/**
* HTTP implementation of the TTransport interface. Used for working with a
@@ -197,6 +197,22 @@
requestBuffer_.write(buf, off, len);
}
+ /**
+ * copy from org.apache.http.util.EntityUtils#consume. Android has it's own httpcore
+ * that doesn't have a consume.
+ */
+ private static void consume(final HttpEntity entity) throws IOException {
+ if (entity == null) {
+ return;
+ }
+ if (entity.isStreaming()) {
+ InputStream instream = entity.getContent();
+ if (instream != null) {
+ instream.close();
+ }
+ }
+ }
+
private void flushUsingHttpClient() throws TTransportException {
if (null == this.client) {
@@ -266,7 +282,7 @@
try {
// Indicate we're done with the content.
- EntityUtils.consume(response.getEntity());
+ consume(response.getEntity());
} catch (IOException ioe) {
// We ignore this exception, it might only mean the server has no
// keep-alive capability.
diff --git a/lib/javame/src/org/apache/thrift/TApplicationException.java b/lib/javame/src/org/apache/thrift/TApplicationException.java
index de9a162..2f8612a 100644
--- a/lib/javame/src/org/apache/thrift/TApplicationException.java
+++ b/lib/javame/src/org/apache/thrift/TApplicationException.java
@@ -41,7 +41,9 @@
public static final int MISSING_RESULT = 5;
public static final int INTERNAL_ERROR = 6;
public static final int PROTOCOL_ERROR = 7;
-
+ public static final int INVALID_TRANSFORM = 8;
+ public static final int INVALID_PROTOCOL = 9;
+ public static final int UNSUPPORTED_CLIENT_TYPE = 10;
protected int type_ = UNKNOWN;
diff --git a/lib/js/thrift.js b/lib/js/thrift.js
index cf89236..39b0a5c 100644
--- a/lib/js/thrift.js
+++ b/lib/js/thrift.js
@@ -87,7 +87,10 @@
'BAD_SEQUENCE_ID' : 4,
'MISSING_RESULT' : 5,
'INTERNAL_ERROR' : 6,
- 'PROTOCOL_ERROR' : 7
+ 'PROTOCOL_ERROR' : 7,
+ 'INVALID_TRANSFORM' : 8,
+ 'INVALID_PROTOCOL' : 9,
+ 'UNSUPPORTED_CLIENT_TYPE' : 10
};
Thrift.TApplicationException = function(message, code) {
diff --git a/lib/nodejs/lib/thrift/thrift.js b/lib/nodejs/lib/thrift/thrift.js
index 6c500a5..94223e3 100644
--- a/lib/nodejs/lib/thrift/thrift.js
+++ b/lib/nodejs/lib/thrift/thrift.js
@@ -59,7 +59,10 @@
BAD_SEQUENCE_ID: 4,
MISSING_RESULT: 5,
INTERNAL_ERROR: 6,
- PROTOCOL_ERROR: 7
+ PROTOCOL_ERROR: 7,
+ INVALID_TRANSFORM: 8,
+ INVALID_PROTOCOL: 9,
+ UNSUPPORTED_CLIENT_TYPE: 10
}
var TApplicationException = exports.TApplicationException = function(type, message) {
diff --git a/lib/ocaml/src/Thrift.ml b/lib/ocaml/src/Thrift.ml
index 8d423d0..f176a43 100644
--- a/lib/ocaml/src/Thrift.ml
+++ b/lib/ocaml/src/Thrift.ml
@@ -294,6 +294,9 @@
| MISSING_RESULT
| INTERNAL_ERROR
| PROTOCOL_ERROR
+ | INVALID_TRANSFORM
+ | INVALID_PROTOCOL
+ | UNSUPPORTED_CLIENT_TYPE
let typ_of_i = function
0l -> UNKNOWN
@@ -304,6 +307,9 @@
| 5l -> MISSING_RESULT
| 6l -> INTERNAL_ERROR
| 7l -> PROTOCOL_ERROR
+ | 8l -> INVALID_TRANSFORM
+ | 9l -> INVALID_PROTOCOL
+ | 10l -> UNSUPPORTED_CLIENT_TYPE
| _ -> raise Thrift_error;;
let typ_to_i = function
| UNKNOWN -> 0l
@@ -314,6 +320,9 @@
| MISSING_RESULT -> 5l
| INTERNAL_ERROR -> 6l
| PROTOCOL_ERROR -> 7l
+ | INVALID_TRANSFORM -> 8l
+ | INVALID_PROTOCOL -> 9l
+ | UNSUPPORTED_CLIENT_TYPE -> 10l
class t =
object (self)
diff --git a/lib/perl/lib/Thrift.pm b/lib/perl/lib/Thrift.pm
index f526803..67186f2 100644
--- a/lib/perl/lib/Thrift.pm
+++ b/lib/perl/lib/Thrift.pm
@@ -69,14 +69,17 @@
package TApplicationException;
use base('Thrift::TException');
-use constant UNKNOWN => 0;
-use constant UNKNOWN_METHOD => 1;
-use constant INVALID_MESSAGE_TYPE => 2;
-use constant WRONG_METHOD_NAME => 3;
-use constant BAD_SEQUENCE_ID => 4;
-use constant MISSING_RESULT => 5;
-use constant INTERNAL_ERROR => 6;
-use constant PROTOCOL_ERROR => 7;
+use constant UNKNOWN => 0;
+use constant UNKNOWN_METHOD => 1;
+use constant INVALID_MESSAGE_TYPE => 2;
+use constant WRONG_METHOD_NAME => 3;
+use constant BAD_SEQUENCE_ID => 4;
+use constant MISSING_RESULT => 5;
+use constant INTERNAL_ERROR => 6;
+use constant PROTOCOL_ERROR => 7;
+use constant INVALID_TRANSFORM => 8;
+use constant INVALID_PROTOCOL => 9;
+use constant UNSUPPORTED_CLIENT_TYPE => 10;
sub new {
my $classname = shift;
diff --git a/lib/php/lib/Thrift/Exception/TApplicationException.php b/lib/php/lib/Thrift/Exception/TApplicationException.php
index 55d46e6..9081973 100644
--- a/lib/php/lib/Thrift/Exception/TApplicationException.php
+++ b/lib/php/lib/Thrift/Exception/TApplicationException.php
@@ -40,6 +40,9 @@
const MISSING_RESULT = 5;
const INTERNAL_ERROR = 6;
const PROTOCOL_ERROR = 7;
+ const INVALID_TRANSFORM = 8;
+ const INVALID_PROTOCOL = 9;
+ const UNSUPPORTED_CLIENT_TYPE = 10;
function __construct($message=null, $code=0) {
parent::__construct($message, $code);
diff --git a/lib/py/src/Thrift.py b/lib/py/src/Thrift.py
index 707a8cc..9890af7 100644
--- a/lib/py/src/Thrift.py
+++ b/lib/py/src/Thrift.py
@@ -101,6 +101,9 @@
MISSING_RESULT = 5
INTERNAL_ERROR = 6
PROTOCOL_ERROR = 7
+ INVALID_TRANSFORM = 8
+ INVALID_PROTOCOL = 9
+ UNSUPPORTED_CLIENT_TYPE = 10
def __init__(self, type=UNKNOWN, message=None):
TException.__init__(self, message)
@@ -119,6 +122,16 @@
return 'Bad sequence ID'
elif self.type == self.MISSING_RESULT:
return 'Missing result'
+ elif self.type == self.INTERNAL_ERROR:
+ return 'Internal error'
+ elif self.type == self.PROTOCOL_ERROR:
+ return 'Protocol error'
+ elif self.type == self.INVALID_TRANSFORM:
+ return 'Invalid transform'
+ elif self.type == self.INVALID_PROTOCOL:
+ return 'Invalid protocol'
+ elif self.type == self.UNSUPPORTED_CLIENT_TYPE:
+ return 'Unsupported client type'
else:
return 'Default (unknown) TApplicationException'
diff --git a/lib/rb/lib/thrift/exceptions.rb b/lib/rb/lib/thrift/exceptions.rb
index 2ccc7ce..68cb9e0 100644
--- a/lib/rb/lib/thrift/exceptions.rb
+++ b/lib/rb/lib/thrift/exceptions.rb
@@ -37,6 +37,9 @@
MISSING_RESULT = 5
INTERNAL_ERROR = 6
PROTOCOL_ERROR = 7
+ INVALID_TRANSFORM = 8
+ INVALID_PROTOCOL = 9
+ UNSUPPORTED_CLIENT_TYPE = 10
attr_reader :type