make read(string) return a binary rather than a list
tested server side ... still need to test client side
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666445 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/alterl/src/thrift_binary_protocol.erl b/lib/alterl/src/thrift_binary_protocol.erl
index fbd3d02..f115b2f 100644
--- a/lib/alterl/src/thrift_binary_protocol.erl
+++ b/lib/alterl/src/thrift_binary_protocol.erl
@@ -132,8 +132,8 @@
Type = Version band 16#000000ff,
{ok, Name} = read(This, string),
{ok, SeqId} = read(This, i32),
- #protocol_message_begin{name = Name,
- type = Type,
+ #protocol_message_begin{name = binary_to_list(Name),
+ type = Type,
seqid = SeqId};
Err = {error, closed} -> Err;
Err = {error, ebadf} -> Err
@@ -221,10 +221,10 @@
Else -> Else
end;
+% returns a binary directly, call binary_to_list if necessary
read(This, string) ->
{ok, Sz} = read(This, i32),
- {ok, Bin} = read(This, Sz),
- {ok, binary_to_list(Bin)};
+ {ok, Bin} = read(This, Sz);
read(This, Len) when is_integer(Len), Len >= 0 ->
thrift_transport:read(This#binary_protocol.transport, Len).
diff --git a/lib/alterl/src/thrift_processor.erl b/lib/alterl/src/thrift_processor.erl
index 0eccba6..233c309 100644
--- a/lib/alterl/src/thrift_processor.erl
+++ b/lib/alterl/src/thrift_processor.erl
@@ -63,9 +63,10 @@
case {ErrType, ErrData} of
_ when IsAsync ->
+ Stack = erlang:get_stacktrace(),
error_logger:warning_msg(
"async void ~p threw error which must be ignored: ~p",
- [Function, {ErrType, ErrData}]),
+ [Function, {ErrType, ErrData, Stack}]),
ok;
{throw, Exception} when is_tuple(Exception), size(Exception) > 0 ->