Commit Graph

1713 Commits

Author SHA1 Message Date
Bryan Duxbury
911d2f1576 THRIFT-1182. rb: Native deserializer segfaults on incorrect list element type
This patch causes both the pure ruby and native extension code paths to check if the data in lists, sets, and maps is of the expected type before deserlizing it. When it's not the right type, it now skips the bad data correctly.

Patch: Ilya Maykov

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1129892 13f79535-47bb-0310-9956-ffa450edef68
2011-05-31 20:03:29 +00:00
Roger Meier
b94b5514b5 THRIFT-1185 Bogus forward declaration of class TAsyncTransport inside file lib/cpp/src/async/TAsyncChannel.h
Patch: Pavlin Radoslavov


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1129346 13f79535-47bb-0310-9956-ffa450edef68
2011-05-30 20:14:00 +00:00
Bryan Duxbury
9a42239eec THRIFT-1170. java: Thrift Generated Code and Java 5
This patch adds a trivial java5 option to the java generator.

Patch: Greg Moulliet

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1126765 13f79535-47bb-0310-9956-ffa450edef68
2011-05-23 21:41:02 +00:00
Bryan Duxbury
b9e47c4ba9 THRIFT-1178. java: Java: TBase signature should be T extends TBase<?,?>
Patch: Ryan Rawson

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1126637 13f79535-47bb-0310-9956-ffa450edef68
2011-05-23 18:30:06 +00:00
Roger Meier
5860f8850e THRIFT-1176 Thrift compiler global leakage js
Patch: Dan Di Spaltro

includes updated test.html to get qunit.js with correct mime-type(IE9 complains)
Fixed by Roger Meier


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1125892 13f79535-47bb-0310-9956-ffa450edef68
2011-05-22 09:59:34 +00:00
Jake Farrell
c023d90e3b Thrift-1174: Publish as3 client implementation via Maven for use by flex-mojos users
Client: as3

Adds the ability to publish the as3 client to maven central repo along side the java and fb303 libs.




git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1125511 13f79535-47bb-0310-9956-ffa450edef68
2011-05-20 19:04:13 +00:00
Roger Meier
b34b83e89d THRIFT-1158 Node.js - package.json used by npm is invalid
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1097229 13f79535-47bb-0310-9956-ffa450edef68
2011-04-27 20:14:33 +00:00
Jake Farrell
6ece9be5c7 THRIFT-1155: Remove log4j dependency from java client
Client: java

Removed dependency for slf4j-log4j for pom and broke requirements for testing. This fixes those requirements and restores the build.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1096788 13f79535-47bb-0310-9956-ffa450edef68
2011-04-26 15:44:50 +00:00
Jake Farrell
b0cdd91a83 Thrift-1155: Remove log4j dependency from java client.
Client: java

slf4j-log4j should not be included with the pom since it is not required for the client. Any logger supported by slf4j can be used.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1096758 13f79535-47bb-0310-9956-ffa450edef68
2011-04-26 14:18:07 +00:00
Jake Farrell
e74caa84e3 Adding java build.properties file to the exported files list.
client: java




git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1095491 13f79535-47bb-0310-9956-ffa450edef68
2011-04-20 19:48:12 +00:00
Jake Farrell
ad6426cfd0 Thrift-1133: Java and JavaScript tutorial is broken since we have Java maven deployment
patch: jfarrell
client: js

Fixing build.xml for the js test cases to use ant-tasks.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1095454 13f79535-47bb-0310-9956-ffa450edef68
2011-04-20 16:35:20 +00:00
Jake Farrell
ebf0bec670 Thrift-1152: attributes from private to protected
patch: jfarrell
clent: php

Changing the TForkingServer children_ from private to protected



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1095434 13f79535-47bb-0310-9956-ffa450edef68
2011-04-20 15:23:26 +00:00
Jake Farrell
4b8faf9e20 Thrift-363: Maven Deploy
Patch: jfarrell
Client lib: java

Adding the ability to publish the java client library as artifacts to the apache maven repository.     

Usage: ant -Drelease=true publish
Note: You must have a gpg key setup and push it to pgp.mit.edu and
  have a ~/.m2/settings.xml file containing your apache and gpg information.
  Thrift-1114 will help make this file more secure or unnecessary.

  <settings>
    <servers>
      <server>
        <id>apache.releases.https</id>
        <username>@APACHE_USERNAME@</username>
        <password>@APACHE_PASSWORD@</password>
      </server>
    </servers>
    <profiles>
      <profile>
        <id>gpg</id>
        <properties>
          <gpg.passphrase>@GPG_PASSPHRASE@</gpg.passphrase>
        </properties>
      </profile>
    </profiles>
  </settings>



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1095216 13f79535-47bb-0310-9956-ffa450edef68
2011-04-19 21:11:54 +00:00
Roger Meier
330b5ae1bf THRIFT-1139 C++ compilation of classes generated for an enum
Patch: Xavier Lepaul


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1094710 13f79535-47bb-0310-9956-ffa450edef68
2011-04-18 19:46:02 +00:00
Bryan Duxbury
5671a55f8e THRIFT-1149. ruby: Nonblocking server fails when client connection is reset
In some situations, a disconnecting client could cause the nonblocking server to trip on an exception and take the whole server down. This patch rescues such errors and cleans up only the disconnected client.

Patch: Alex

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1094667 13f79535-47bb-0310-9956-ffa450edef68
2011-04-18 17:29:06 +00:00
Jake Farrell
83693531db Thrift-1131: C# JSON Protocol is unable to decode escaped characters in string
Client lib: csharp
Patch: Maciek Weksej

C# JSON Protocol throws TProtocolException after meeting an escaped character in UTF8 string, this casts the value being read to avoid this.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1092282 13f79535-47bb-0310-9956-ffa450edef68
2011-04-14 14:30:25 +00:00
Jake Farrell
daca3596f2 Thrift-322: HttpHandler for Thrift
Client lib: csharp
Patch: Nils Hügelmann

Adding HttpHandler Support to CSharp lib.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1091986 13f79535-47bb-0310-9956-ffa450edef68
2011-04-14 01:42:12 +00:00
Jake Farrell
6f1e992f6c THRIFT-322: IHttpHandler for Thrift
Client lib: C#
Patch By: nilshu

Adding HTTPHandler to csharp client lib.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1091921 13f79535-47bb-0310-9956-ffa450edef68
2011-04-13 21:09:02 +00:00
Jake Farrell
10ed8e814f THRIFT-1144: PHP client Attributes from private to protected
Updating private variable for persistant connections in TSocket to protected.


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1091897 13f79535-47bb-0310-9956-ffa450edef68
2011-04-13 19:42:35 +00:00
Roger Meier
0ae0542152 THRIFT-1136 C++ SSL implementation cleanup
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1091553 13f79535-47bb-0310-9956-ffa450edef68
2011-04-12 19:23:10 +00:00
Bryan Duxbury
d26cb9b325 THRIFT-690. php: Update TApplicationException codes
Patch: Nicholas Telford

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1091150 13f79535-47bb-0310-9956-ffa450edef68
2011-04-11 17:59:27 +00:00
Roger Meier
5c819c084c THRIFT-1129 Add BufferedTransport (non-framed) to Node.js library
Patch: Wade Simmons


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1090565 13f79535-47bb-0310-9956-ffa450edef68
2011-04-09 11:10:04 +00:00
Bryan Duxbury
c32e8309f4 THRIFT-1132. csharp: Deserialization error in TApplicationException C#
Add in a missing ReadStructBegin call.

Patch: Wojciech Baćmaga

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1090392 13f79535-47bb-0310-9956-ffa450edef68
2011-04-08 18:31:52 +00:00
Roger Meier
08b309997f THRIFT-1087 Nonblocking asynchronous JS services
Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1089637 13f79535-47bb-0310-9956-ffa450edef68
2011-04-06 21:30:53 +00:00
Bryan Duxbury
f02d43772f THRIFT-1119. csharp: TJSONProtocol fails to UTF8 decode strings
Patch: guoyunfeng

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1086262 13f79535-47bb-0310-9956-ffa450edef68
2011-03-28 14:56:53 +00:00
Roger Meier
3460393675 THRIFT-1116 Compilation error in file TSSLSocket.cpp on FreeBSD-8.0
Patch: Pavlin Radoslavov


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1085347 13f79535-47bb-0310-9956-ffa450edef68
2011-03-25 12:22:17 +00:00
Roger Meier
2fdf05c69e THRIFT-1117 JavaScript Unit Test does not work anymore because libthrift*.jar where moved by Maven Deployment(THRIFT-363)
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1085330 13f79535-47bb-0310-9956-ffa450edef68
2011-03-25 11:37:16 +00:00
Bryan Duxbury
55f7ffea5d THRIFT-363. java: Maven deploy
It finally works\!

Patch: Jake Farrell

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1085046 13f79535-47bb-0310-9956-ffa450edef68
2011-03-24 17:24:27 +00:00
Bryan Duxbury
d081dd668b THRIFT-1106. cpp: C++ code TAsyncProtocolProcessor.h & TAsyncBufferProcessor.h dont have virtual functions but no virtual destructor. Causes warnings on -Wall
Patch: Fasih

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1084656 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 18:05:27 +00:00
Bryan Duxbury
1606659171 THRIFT-1103. py: TZlibTransport for python, a zlib compressed transport
This patch adds a new TZlibTransport to the Python library and extends the test suite to exercise it.

Patch: Will Pierce

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1084276 13f79535-47bb-0310-9956-ffa450edef68
2011-03-22 18:06:04 +00:00
Roger Meier
42a6fa4b29 THRIFT-1091 integrate JavaScript Test into Testsuite via make check
...fix broken build


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083963 13f79535-47bb-0310-9956-ffa450edef68
2011-03-21 21:26:35 +00:00
Bryan Duxbury
177b52ab58 THRIFT-1101. java: bytebuffer length calculation in TBinaryProtocol writeBinary
This patch fixes a bug in Binary and Compact protocol that incorrectly calculates the length of the bytes to be written when the byte buffer being written has a nonzero array offset (such as after a slice() call).

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083890 13f79535-47bb-0310-9956-ffa450edef68
2011-03-21 18:18:33 +00:00
Bryan Duxbury
d3fceb02d4 THRIFT-1098. php: Undefined properties in TBinaryProtocolFactory
Corrected some typos. 

Patch: Torben Brodt

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083882 13f79535-47bb-0310-9956-ffa450edef68
2011-03-21 18:04:08 +00:00
Bryan Duxbury
5040911bfa THRIFT-1100. py: python TSSLSocket improvements, including certificate validation
This patch adds a number of features to TSSLSocket and TSSLServerSocket.

Patch: Will Pierce

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083880 13f79535-47bb-0310-9956-ffa450edef68
2011-03-21 17:59:49 +00:00
Bryan Duxbury
59d4efda81 THRIFT-1094. py: bug in TCompactProto python readMessageEnd method and updated test cases
This patch fixes a TCompactProtocol bug and expands the test cases to exercise the problem.

Patch: Will Pierce

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083877 13f79535-47bb-0310-9956-ffa450edef68
2011-03-21 17:38:22 +00:00
Roger Meier
f2495760fe THRIFT-1091 integrate JavaScript Test into Testsuite via make check
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1082649 13f79535-47bb-0310-9956-ffa450edef68
2011-03-17 19:13:36 +00:00
Bryan Duxbury
ee7c7bb485 THRIFT-1050. java: Declaring an argument named 'manager' to a service method produces code that fails compile due to name conflicts with protected ivars in TAsyncClient
This patch adds a triple-underscore prefix to all the ivars in TAsyncClient, making it substantially more difficult to get a conflict.

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1081868 13f79535-47bb-0310-9956-ffa450edef68
2011-03-15 17:25:23 +00:00
Bryan Duxbury
df4cffd34a THRIFT-1093. py: several bugs in python TCompactProtocol
Patch; Will Pierce

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1081864 13f79535-47bb-0310-9956-ffa450edef68
2011-03-15 17:16:09 +00:00
Roger Meier
da6e6ae918 THRIFT-1089 JavaScript Quality Assurance with lint
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1081707 13f79535-47bb-0310-9956-ffa450edef68
2011-03-15 09:55:33 +00:00
Bryan Duxbury
a48b7d6e52 THRIFT-1083. py: Preforking python process pool server
Patch: Dvir Volk

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1079913 13f79535-47bb-0310-9956-ffa450edef68
2011-03-09 18:05:58 +00:00
Roger Meier
0244e9353f THRIFT-983 js: add version Info to the library
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1079834 13f79535-47bb-0310-9956-ffa450edef68
2011-03-09 15:25:01 +00:00
Roger Meier
6d8219c105 THRIFT-6 update version info
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1078952 13f79535-47bb-0310-9956-ffa450edef68
2011-03-07 21:16:46 +00:00
Roger Meier
b4bcbe3cb2 THRIFT-1014 JavaScript code should use semicolon-terminated statements
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1078905 13f79535-47bb-0310-9956-ffa450edef68
2011-03-07 19:37:46 +00:00
Roger Meier
3f067a86eb THRIFT-1084 Typo fixes
Patch: Bruce Mitchener


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1077939 13f79535-47bb-0310-9956-ffa450edef68
2011-03-04 13:35:05 +00:00
Roger Meier
062de1b0d3 THRIFT-987 ruby does not build on Debian based distro's
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1077930 13f79535-47bb-0310-9956-ffa450edef68
2011-03-04 13:10:58 +00:00
Bryan Duxbury
e7b1864d46 THRIFT-867. php: PHP accelerator module's output transport is incompatible with TFramedTransport
This patch prevents TFramedTransport from flushing empty frames.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1076918 13f79535-47bb-0310-9956-ffa450edef68
2011-03-04 01:35:17 +00:00
Bryan Duxbury
c46f32ce18 THRIFT-638. php: BufferedTransport + C extensions block until recv timeout is reached on last fread call
This patch refactors TSocket to make use of stream_select() for timeout detection. 

Patch: Nicholas Telford

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1076917 13f79535-47bb-0310-9956-ffa450edef68
2011-03-04 01:25:17 +00:00
Bryan Duxbury
a2cceb4396 THRIFT-1076. erl: Erlang Thrift socket server has a bug that causes java thrift client of framed binary client to throw 'out of sequence' exception
This patch makes the erlang server return the seq id that the client sent instead of 0.

Patch: Pascal Qu

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1076318 13f79535-47bb-0310-9956-ffa450edef68
2011-03-02 18:25:24 +00:00
Bryan Duxbury
ef6cbfd1ab THRIFT-1011. as3: Error generating package imports when using classes from other packages
Patch: Usman Ismail

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1075916 13f79535-47bb-0310-9956-ffa450edef68
2011-03-01 16:57:34 +00:00
Roger Meier
46d32b4f08 THRIFT-1030 C++ THttpTransport doesn't support chucked transfer encoding
Patch: Rowan Kerr


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1075399 13f79535-47bb-0310-9956-ffa450edef68
2011-02-28 16:04:51 +00:00
Roger Meier
9db5e50b42 THRIFT-1070 C++ compiler and runtime have 32/64bit problems
Patch: Rich Salz


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1075121 13f79535-47bb-0310-9956-ffa450edef68
2011-02-27 19:24:45 +00:00
Roger Meier
d9924984db THRIFT-863 JavaScript fix Map Type
Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1074194 13f79535-47bb-0310-9956-ffa450edef68
2011-02-24 16:04:03 +00:00
Roger Meier
60cb3baf8f THRIFT-1073 fix javadoc target
Patch: Diwaker Gupta


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1074173 13f79535-47bb-0310-9956-ffa450edef68
2011-02-24 14:45:03 +00:00
Roger Meier
598bf48f77 THRIFT-1071 invalid cast breaks build
Patch: Rowan Kerr


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073526 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 21:56:33 +00:00
Roger Meier
76d55f6357 THRIFT-1065 JavaScript read-undefined-exceptions2
Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073497 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 20:56:45 +00:00
Roger Meier
b3b07d6de4 THRIFT-1065 JavaScript qUnit test cleanup
Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073495 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 20:55:21 +00:00
Roger Meier
a8738b5560 THRIFT-1065 Unexpected exceptions not proper handled on JS
THRIFT-847  same bahavior for Java and C++(test/cpp/src/TestServer.cpp)

Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073484 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 20:15:03 +00:00
Bryan Duxbury
2b969add48 THRIFT-1068. py: Python SSL Socket Support
A python implementation of TSSLSocket.

Patch: Kevin Worth

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073447 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 18:20:53 +00:00
Bryan Duxbury
f1ed926969 THRIFT-1067. php: Tons of bugs in php implementation
Patch: Ruslan Usifov

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073446 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 18:20:13 +00:00
Bryan Duxbury
7d1517aa4c THRIFT-1067. php: Tons of bugs in php implementation
Patch: Ruslan Usifov

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073444 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 18:17:23 +00:00
Bryan Duxbury
cd9aea1136 THRIFT-151. cpp: TSSLServerSocket and TSSLSocket implementation
This patch adds an implementation of the above ssl sockets.

Patch: Ping Li, Kevin Worth, Rowan Kerr

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1073441 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 18:12:06 +00:00
Christian Lavoie
cd2ee9ae6e Fix small bug in THRIFT-538 commit: use int32s instead of in64s to encode lengths.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1072684 13f79535-47bb-0310-9956-ffa450edef68
2011-02-20 18:59:33 +00:00
Christian Lavoie
afc6d8f650 THRIFT-625: Add support for 'Go'; provided by Aalok Shah.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1072478 13f79535-47bb-0310-9956-ffa450edef68
2011-02-20 02:39:19 +00:00
Roger Meier
55ea68f8e7 THRIFT-1044 Fix JavaScript Inheritance
Patch: Henrique Mendonca


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1071370 13f79535-47bb-0310-9956-ffa450edef68
2011-02-16 19:29:50 +00:00
Christian Lavoie
d4c67c343e Fix file 'added twice' by accident by previous commit.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068909 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 14:37:53 +00:00
Christian Lavoie
410253a1e0 Commit client support for framed transport in Haskell from Martin Grabmueller.
THRIFT-538: missing support for framed transport



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068756 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 05:27:32 +00:00
Christian Lavoie
2bbc328212 Patch from Chris Morgan, fixing gcc warnings.
THRIFT-1057: casts in TBinaryProtocol.tcc causing "dereferencing type-punned pointer will break strict-aliasing rules" warnings from gcc



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068672 13f79535-47bb-0310-9956-ffa450edef68
2011-02-08 23:05:47 +00:00
Bryan Duxbury
0fd37f0871 THRIFT-447. java: Make an abstract base Client class so we can generate less code
This patch introduces a handful of abstract, non-generated classes that allow us to generate much less code for service implementations.

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068487 13f79535-47bb-0310-9956-ffa450edef68
2011-02-08 17:26:37 +00:00
Bryan Duxbury
2d9dfdb88e THRIFT-1055. csharp: csharp TServerSocket and TSocket do not disable Nagle via Socket.NoDelay = true like cpp and java do
This patch sets NoDelay on TSocket and TServerSocket to improve performance.

Patch: Chris Morgan

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068470 13f79535-47bb-0310-9956-ffa450edef68
2011-02-08 16:38:15 +00:00
Todd Lipcon
56c2d5682e THRIFT-1053. Provide a getUnderlyingTransport function for TSaslTransport
Patch: Devaraj Das


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1067719 13f79535-47bb-0310-9956-ffa450edef68
2011-02-06 18:13:10 +00:00
Mark Slee
a026b5d9eb THRIFT-1051. Applying @Override to interface method breaks compile on Java 1.5
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1064911 13f79535-47bb-0310-9956-ffa450edef68
2011-01-28 22:26:13 +00:00
T Jake Luciani
7070aaa23b THRIFT-904: disable nagle and linger
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063966 13f79535-47bb-0310-9956-ffa450edef68
2011-01-27 02:51:51 +00:00
Bryan Duxbury
9dedce2196 THRIFT-1021. ocaml: Framed transport support for OCaml
Patch: Richard Low

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063917 13f79535-47bb-0310-9956-ffa450edef68
2011-01-26 23:31:19 +00:00
Bryan Duxbury
c8d533b65e THRIFT-1038. java: Generated Java code for structures containing binary fields (or collections thereof) are not serializable (in the Java sense) even though they implement java.io.Serializable
This patch causes Java Serialized Thrift structs to be serialized onto the stream via the Compact Protocol.

Patch: Mathias Herberts

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063907 13f79535-47bb-0310-9956-ffa450edef68
2011-01-26 22:42:02 +00:00
Bryan Duxbury
34c2dbd545 THRIFT-1041. java: TDeserializer holds onto a reference of the array it reads after it is done deserializing
This patch makes sure that after using the bytes passed in, no references are retained.



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063820 13f79535-47bb-0310-9956-ffa450edef68
2011-01-26 18:40:30 +00:00
Bryan Duxbury
c0e2ef50b7 THRIFT-999. php: Add TForkingServer
Patch: Nick Jones

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063814 13f79535-47bb-0310-9956-ffa450edef68
2011-01-26 18:25:17 +00:00
Bryan Duxbury
e0498c984e THRIFT-1049. py: Allow for TServerSocket python library to bind to a specific host
This patch adds a new host argument to TServerSocket that allows it to bind to a specific host.

Patch: Jake Farrell

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063806 13f79535-47bb-0310-9956-ffa450edef68
2011-01-26 17:54:02 +00:00
Christian Lavoie
6a084da48f Fix haskell-related bug in the 0.6.x branch for RC1; make sure trunk receives the same patch.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1063050 13f79535-47bb-0310-9956-ffa450edef68
2011-01-24 23:01:37 +00:00
Roger Meier
7f979e4f78 THRIFT-1042 Fix TApplicationException.read
Patch: Wade Simmons


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1062377 13f79535-47bb-0310-9956-ffa450edef68
2011-01-23 10:57:03 +00:00
Roger Meier
90443f4e11 THRIFT-1044 Fix JavaScript inheritance
Patch Wade Simmons


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1062279 13f79535-47bb-0310-9956-ffa450edef68
2011-01-22 21:35:48 +00:00
Roger Meier
4b3f1c3181 THRIFT-1043 Fix how the length of a map is calculated
Patch: Wade Simmons


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1062278 13f79535-47bb-0310-9956-ffa450edef68
2011-01-22 21:32:50 +00:00
Bryan Duxbury
39fbb9a95b THRIFT-1032. make dist fails due to c_glib problem
Patch: Michael Lum

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1058692 13f79535-47bb-0310-9956-ffa450edef68
2011-01-13 18:09:51 +00:00
Bryan Duxbury
fad8d6b109 THRIFT-125. OCaml libraries don't compile with 32-bit ocaml
Patch: Iain Proctor and John Bilings

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1058270 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 18:41:52 +00:00
T Jake Luciani
0c124bb94f THRIFT-1033: node.js target and lib
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1056613 13f79535-47bb-0310-9956-ffa450edef68
2011-01-08 03:49:16 +00:00
Bryan Duxbury
c216556bd6 update version numbers to 0.7.0-dev
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1056453 13f79535-47bb-0310-9956-ffa450edef68
2011-01-07 18:45:29 +00:00
Roger Meier
e0cac988b6 THRIFT-1022 Typo cleanup patch
Patch: Anatol Pomozov


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1049968 13f79535-47bb-0310-9956-ffa450edef68
2010-12-16 13:15:49 +00:00
Bryan Duxbury
22903cb542 THRIFT-1015. java: TUnion does not handle ByteBuffer in toString
This patch adds a test case and fixes the toString method of TBaseHelper for ByteBuffers.

Patch: Takashi Yonebayashi

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1041590 13f79535-47bb-0310-9956-ffa450edef68
2010-12-02 21:29:20 +00:00
Roger Meier
c0b5d9065c THRIFT-998 Silence g++ -Wswitch-enum warning in header
Patch: Rich Salz


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1040758 13f79535-47bb-0310-9956-ffa450edef68
2010-11-30 20:23:44 +00:00
Roger Meier
c2cc61a0fa THRIFT-1002 some more cleanup in c_glib part
Patch: Anatol Pomozov


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1040738 13f79535-47bb-0310-9956-ffa450edef68
2010-11-30 19:53:29 +00:00
Bryan Duxbury
708971351f THRIFT-1009. java: TUnion does not correctly deep copy a ByteBuffer
This patch adds a case to deepCopyObject for ByteBuffer, along with a test case that verifies the change in functionality.

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1040358 13f79535-47bb-0310-9956-ffa450edef68
2010-11-30 00:33:48 +00:00
Christian Lavoie
cbf87cb89c THRIFT-916: Commit THRIFT-916_fix_no-overflow.patch -- remove overflow coming from a few constants.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1039885 13f79535-47bb-0310-9956-ffa450edef68
2010-11-28 14:34:26 +00:00
Roger Meier
c101092ea7 THRIFT-1003 Polishing c_glib code
Patch: Anatol Pomozov


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1039299 13f79535-47bb-0310-9956-ffa450edef68
2010-11-26 10:17:48 +00:00
Bryan Duxbury
a5eb848930 THRIFT-1008. java: byte[] accessors throw NPE on unset field
Further extra null check in accessors that use TBaseHelper.rightSize().

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1038850 13f79535-47bb-0310-9956-ffa450edef68
2010-11-24 22:30:38 +00:00
Christian Lavoie
af65f1b478 THRIFT-916: Commit a partial fix for flex-generated code infested with warnings on Mac OS X
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1038844 13f79535-47bb-0310-9956-ffa450edef68
2010-11-24 21:58:05 +00:00
Bryan Duxbury
fea49cb840 THRIFT-1008. java: byte[] accessors throw NPE on unset field
This patch adds a null check to TBaseHelper.rightSize().

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1038833 13f79535-47bb-0310-9956-ffa450edef68
2010-11-24 21:30:00 +00:00
Roger Meier
5f9614cf9a THRIFT-916 long long becomes int64_t
Patch: Christian Lavoie



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1037500 13f79535-47bb-0310-9956-ffa450edef68
2010-11-21 16:59:05 +00:00
Roger Meier
d3bfe70030 THRIFT-916 Wall_Wextra_pedantic_Wno-long-long_Wno-variadic-macros_Wno-overflow_NOWARNINGS_DebianLenny.patch applied
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1037127 13f79535-47bb-0310-9956-ffa450edef68
2010-11-20 06:48:47 +00:00
Bryan Duxbury
cecbe0fc52 THRIFT-347. php: PHP TSocket Timeout Issues
This patch appears to correct the infamous timeout issues.

Patch: Tyler Hobbs

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1036684 13f79535-47bb-0310-9956-ffa450edef68
2010-11-19 00:06:51 +00:00
Bryan Duxbury
c3affb3940 THRIFT-979. rb: ruby bindings used to work on jruby
Make a dummy makefile so that JRuby doesn't complain.

Patch: Jeff Hodges

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1036267 13f79535-47bb-0310-9956-ffa450edef68
2010-11-17 22:47:06 +00:00
Roger Meier
3b771a10f1 THRIFT-916 compile with -Wall -Wextra without warning on Debian Lenny
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1036250 13f79535-47bb-0310-9956-ffa450edef68
2010-11-17 22:11:26 +00:00
Bryan Duxbury
bbe36c5d35 THRIFT-970. java: Under heavy load, THttpClient may fail with 'too many open files'
This patch updates our THttpClient to have two different modes of operation: its current functionality and a new mode that uses Apache's HttpClient library to provide higher throughput and better pooling functionality.

Patch: Mathias Herberts

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1031668 13f79535-47bb-0310-9956-ffa450edef68
2010-11-05 17:14:52 +00:00
Christian Lavoie
01c5cebfdd THRIFT-916: Fix warnings in C++ when compiling with -Wall.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1031222 13f79535-47bb-0310-9956-ffa450edef68
2010-11-04 20:35:15 +00:00
Christian Lavoie
4f42ef7aa5 THRIFT-953: Fix compilation of TransportTest.cpp on Mac (actual tests still fail) and fix boost m4 macros for Mac.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1031148 13f79535-47bb-0310-9956-ffa450edef68
2010-11-04 18:51:42 +00:00
Roger Meier
5aaa02166e change URL's to TLP
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1030901 13f79535-47bb-0310-9956-ffa450edef68
2010-11-04 12:20:05 +00:00
Bryan Duxbury
4a2bc1b161 THRIFT-977. cpp: Hex Conversion Bug in C++ TJSONProtocol
This patch fixes a silly bug in hex-to-int conversion in TSJONProtocol.

Patch: Aravind Narayanan

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1030576 13f79535-47bb-0310-9956-ffa450edef68
2010-11-03 17:57:38 +00:00
Christian Lavoie
ae7f7fa57f THRIFT-950: Haskell bindings treat 'byte' as unsigned 8-bit int (Data.Word.Word8), java/cpp as signed (byte/int8_t). Fix Haskell.
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1030243 13f79535-47bb-0310-9956-ffa450edef68
2010-11-02 21:42:53 +00:00
Roger Meier
a8b52c7a8b THRIFT-6 TLP URL's and email's, haskell, more details
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1029964 13f79535-47bb-0310-9956-ffa450edef68
2010-11-02 07:33:30 +00:00
Roger Meier
229c4c28c1 THRIFT-975 minimal README added
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1028617 13f79535-47bb-0310-9956-ffa450edef68
2010-10-29 05:14:54 +00:00
Bryan Duxbury
452dc69a6b improve formatting in TProtocolUtil.skip
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1028140 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 23:39:58 +00:00
Bryan Duxbury
b6722bf8c4 THRIFT-377. java: TFileTransport port in Java
This patch adds TFileTransport to the java library. This transport is not a general-purpose file transport; instead, it is more of a way to execute one-way RPC via an offline file process.

Patch: Joydeep Sen Sarma

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1028136 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 23:26:52 +00:00
Bryan Duxbury
8c9c8bf8f0 THRIFT-517. java:TExceptions thrown by server result in cryptic error message on client - Tried to read 4 bytes, but only got 0 bytes
This tiny change improves the message to make it marginally more obvious that the server-side might be the culprit.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1028131 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 23:15:35 +00:00
Roger Meier
2fde9eee6f THRIFT-971 java module can't be compiled without ivy and network connection
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1028075 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 19:19:04 +00:00
Bryan Duxbury
a6ce16470d THRIFT-949. java: Modify the TEnum interface so it defines a method similar to findByValue
This patch adds a new helper class that makes it easier to get instances of generic TEnum descendents by value.

Patch: Mathias Herberts

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1028051 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 17:54:10 +00:00
Roger Meier
213a664798 THRIFT-582 C(c_glib) implementation of Thrift
Patch: Anatol Pomozov and Michael Lum


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1027933 13f79535-47bb-0310-9956-ffa450edef68
2010-10-27 12:30:11 +00:00
Roger Meier
5013de297a THRIFT-960 Java: remove TestServer, TestNonblockingServer and TestClient from Unittest
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1027248 13f79535-47bb-0310-9956-ffa450edef68
2010-10-25 19:57:26 +00:00
Roger Meier
178f8f2c52 THRIFT-916 partial commit of v3-fix-all-warnings.patch and member initialization in Thrift.h
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1027092 13f79535-47bb-0310-9956-ffa450edef68
2010-10-25 12:36:04 +00:00
Roger Meier
37b5bf8e00 THRIFT-961 JavaScript TestSuite using ant/ivy and Java's ServerTestBase Handler
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026899 13f79535-47bb-0310-9956-ffa450edef68
2010-10-24 21:41:24 +00:00
Roger Meier
2067c1f01b THRIFT-960 switch back to TThreadPoolServer with AbstractServerArgs
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026714 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 23:50:48 +00:00
Roger Meier
5ad70a1a55 THRIFT-960 update to use AbstractServerArgs
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026712 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 23:35:46 +00:00
Roger Meier
62b7cfb7b9 THRIFT-960 Java: add TestServer, TestNonblockingServer and TestClient again
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026704 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 22:25:04 +00:00
Roger Meier
56b6e32173 THRIFT-6 csharp AssemblyInfo added
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026700 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 22:16:51 +00:00
Roger Meier
bc8109faff THRIFT-6 accidently changed name of ThriftMSBuildTask to Thrift, reverted
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026690 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 22:01:54 +00:00
Bryan Duxbury
e703ed2ce6 THRIFT-745. java: Make it easier to instantiate servers
This patch replaces the multitude of constructors with builder-esque Args objects for each server and single constructor.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026482 13f79535-47bb-0310-9956-ffa450edef68
2010-10-22 20:23:57 +00:00
Roger Meier
2287278140 THRIFT-6 update Version Info for several languages, add print-version to Makefile.am
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1026299 13f79535-47bb-0310-9956-ffa450edef68
2010-10-22 11:20:25 +00:00
Bryan Duxbury
8166073e7f THRIFT-959. java: TSocket seems to do its own buffering inefficiently
This patch removes the buffering from TSocket. This seems to improve performance marginally on small reads and writes that are buffered elsewhere (like the Framed Transport).

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1025678 13f79535-47bb-0310-9956-ffa450edef68
2010-10-20 19:04:07 +00:00
Bryan Duxbury
206c0dc1af THRIFT-947. java: Provide a helper method to determine the TProtocol used to serialize some data.
Patch: Mathias Herberts

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1024455 13f79535-47bb-0310-9956-ffa450edef68
2010-10-19 23:00:27 +00:00
Bryan Duxbury
2376684d86 THRIFT-957. java: THsHaServer: Change access modifier of the invoker field.
This patch adds a new overridable method to allow subclasses to specify their own Runnable implementation.

Patch: Benjamin Coverston

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1024343 13f79535-47bb-0310-9956-ffa450edef68
2010-10-19 18:06:45 +00:00
Bryan Duxbury
1b13083def THRIFT-106. java: TSSLServerSocket
This patch adds support for SSL-encrypted client and server sockets.

Patch: Nirmal Ranganathan

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1024328 13f79535-47bb-0310-9956-ffa450edef68
2010-10-19 17:20:57 +00:00
David Reiss
63228e53c2 cpp: Support oneway calls in TDebugProtocol.cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023913 13f79535-47bb-0310-9956-ffa450edef68
2010-10-18 17:25:40 +00:00
David Reiss
f770befe17 cpp: Add a little extra whitespace to TDebugProtocol.cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023912 13f79535-47bb-0310-9956-ffa450edef68
2010-10-18 17:25:13 +00:00
Roger Meier
d11ca5a95e THRIFT-916 gcc warnings(partial) use snprintf instead of sprintf
Patch: Christian Lavoie


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023682 13f79535-47bb-0310-9956-ffa450edef68
2010-10-18 08:22:57 +00:00
Bryan Duxbury
e8ddffe7ba THRIFT-958. java: Change accessmodifer on trans_ field in the FrameBuffer class to public.
Patch: Benjamin Coverston

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023008 13f79535-47bb-0310-9956-ffa450edef68
2010-10-15 16:40:34 +00:00
Roger Meier
c991270de6 THRIFT-913 Test Case for Url encoded strings + simple enhancement to lib/js/test/RunTestServer.sh
and ignore gen-* and *.class


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1022907 13f79535-47bb-0310-9956-ffa450edef68
2010-10-15 13:16:05 +00:00
Roger Meier
0069cc4a29 THRIFT-916 no errors on GNU/Linux when compiling with CXXFLAGS="-Wall -Wextra -pedantic"
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1022220 13f79535-47bb-0310-9956-ffa450edef68
2010-10-13 18:10:18 +00:00
Bryan Duxbury
4c5689269f THRIFT-951. java: Add a new isServing() method to TServer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021941 13f79535-47bb-0310-9956-ffa450edef68
2010-10-12 22:32:23 +00:00
Bryan Duxbury
21cd3180ef spacing cleanup
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021535 13f79535-47bb-0310-9956-ffa450edef68
2010-10-11 22:13:23 +00:00
Bryan Duxbury
8684df9a79 clear a bunch of java warnings, unused code and imports, etc
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021531 13f79535-47bb-0310-9956-ffa450edef68
2010-10-11 22:01:27 +00:00
Mark Slee
052bbef327 THRIFT-952. TBinarySerializer utility class for converting between byte strings and PHP objects
Adds a nice TBinarySerializer class to make it simple to convert between PHP objects and serialized strings using the Binary protocol.

Patch: Radu Marin


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021521 13f79535-47bb-0310-9956-ffa450edef68
2010-10-11 21:45:13 +00:00
Roger Meier
085a3e7b60 THRIFT-926 Miscellaneous C++ improvements
changing single destructor call time limit from 500us to 1000us
build does not fail on busy machines



git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1006030 13f79535-47bb-0310-9956-ffa450edef68
2010-10-08 21:23:35 +00:00
Bryan Duxbury
f969bcb7d8 THRIFT-862. java: Async client issues / improvements
This patch improves quite a large number of things about the async client code.

Patch: Ning Liang

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005221 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 20:04:40 +00:00
Bryan Duxbury
b3d0aa0c82 THRIFT-946. java: Augment FieldValueMetaData so it differentiates 'string' and 'binary' fields.
This patch adds a new method to the FieldMetaData class that indicates binary or not.

Patch: Mathias Herberts

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005220 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 20:00:03 +00:00
David Reiss
25df8e7e4a THRIFT-926. cpp: Better exception handling in TSimpleServer
Move processing code out of main try block and created individual
try/catch's for closing down the client and it's transports (to avoid
issues with throwing exceptions from a catch block).

Also converted to using GlobalOutput instead of cerr.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005171 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:54 +00:00
David Reiss
46e4f252dc THRIFT-926. cpp: remove auto-stringification in TLogging.h
The T_DEBUG* and T_ERROR* macros used preprocessor stringification to
stringify the format string argument.  This was weird and unintuitive.

With the old behavior:

- Quotes surrounding the format string were included in the message:
  T_DEBUG("this is a test") --> expanded to  "\"this is a test\""

- Backslashes in the string are escaped so they print literally:
  T_DEBUG("foo\nbar")       --> expanded to  "\"foo\\nbar\""

- Standard fixed-width integer format macros don't work:
  T_DEBUG("x: %" PRIi64, x) --> expanded to  "\"x: %\" PRIi64"

The last item is particularly problematic, since it prevents 64-bit
values from being logged portably.

With the new code, the following will no longer compile:

  T_DEBUG(this is my log message: %d, 5)

I don't think that is a bad thing, though.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005170 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:53 +00:00
David Reiss
89a12942d2 THRIFT-926. cpp: Better buffer management for TNonblockingServer
Add two improvements to memory management in TNonblocking server:
- Separate the receive code into two distinct states: one for receiving
  the frame header and one for the frame content.  This allows us to
  size the initial read buffer based on the initial frame size, rather
  than allocating an arbitrary amount of memory before reading the
  header.
- Allow setting the initial write buffer size based on the application's
  expected response size.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005169 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:52 +00:00
David Reiss
7e729d2074 THRIFT-926. cpp: Let TMemoryBuffer::resetBuffer() set size of self-allocated buffer
Although there is a constructor that allows a TMemoryBuffer to be
created with an internally-allocated buffer of a desired size, there was
no way for resetBuffer to obtain analogous behavior. This change causes
the appropriate constructor to be used.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005168 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:51 +00:00
David Reiss
f673509f1b THRIFT-926. cpp: Thrift: throw bad_alloc when malloc fails, not something else
When malloc/realloc fail, we've typically just thrown a TException. This
allows a server that should simply crash when out of memory to survive
in a strage state, with various bad consequences. Instead, we should
throw bad_alloc and just not catch it (or if we decide to, be very
careful to respond properly).

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005167 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:49 +00:00
David Reiss
2991a0f376 THRIFT-926. cpp: TFramedTransport: Uphold the strong exception safety guarantee
Previously, if we had a new[] failure when growing a TFramedTransport
write buffer, we would leave the buffer in an invalid state (wBufSize_
would reflect the desired size, rather than the actual size).  Now, we
make no change to any member variables if new[] fails.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005166 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:47 +00:00
David Reiss
ece1a089ec THRIFT-926. cpp: TMemoryBuffer: Uphold the strong exception safety guarantee
Previously, if we had a realloc failure when growing a TMemoryBuffer, we
would leave the buffer in an invalid state (bufferSize_ would reflect
the desired size, rather than the actual size).  Now, we make no change
to any member variables if realloc fails.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005165 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:46 +00:00
David Reiss
54bec5dbd8 THRIFT-926. cpp: Add configurable buffer recycling for TNonblockingServer
Add methods to TNonblockingServer to set the maximum size of idle read
and write buffers and the check interval (in calls).  When checked, if
the buffers are larger than the configured maximum, they will be resized
down the to maximum size.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005164 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:45 +00:00
David Reiss
7197efb849 THRIFT-926. cpp: Revert r750153 to make way for more flexible version
r750153 caused TNonblockingServer to reset its buffers every 512 calls.
A more configurable version was developed internally, so I'm reverting
this rev first to avoid conflicts.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005163 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:43 +00:00
David Reiss
109693c82a THRIFT-929. cpp: Convert tests to use boost 1.37
The boost test framework has changed significantly from boost 1.34 to
1.37.  Quite a few new features have been added, and some annoying bugs
have been fixed.

This change now builds the thrift tests against boost 1.37, and updates
them to use some of the newer features.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005162 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:42 +00:00
David Reiss
0a2d81e816 THRIFT-926. cpp: Fix inconsistencies in transport read() behavior
- TBufferedTransport::borrow() could block if not enough data was
  available.  Now it returns NULL immediately in this case, like all
  other transports.

- TBufferedTransport::read() could block some data was available in the
  readahead buffer, but not enough to satisfy the request.  It would
  attempt to call read() on the underlying transport, but this might
  block.  Now it just returns the remaining data in the readahead
  buffer.  The caller is responsible for calling read() again to get the
  rest of the data they want.

- TFrameTransport::read() threw an exception if read() on the underlying
  transport returned 0 when looking for a frame header.  Now
  TFrameTransport::read() returns 0, too.  (It still throws an exception
  if the underlying transport returns 0 after a partial frame or frame
  header has been read.)

- TFDTransport::read() threw an exception on EINTR.  Now it retries up
  to 5 times, similarly to the way TSocket::read() behaves.

- TZlibTransport::read() could block when less data than was requested
  is available.  Now it only calls read() on the underlying transport
  when it would otherwise have nothing to return.

  This does mean that TZlibTransport::read() now often returns less data
  than is actually available at the time.  This required updating
  several of the ZlibTest tests to use readAll() instead of read(),
  since they previously assumed read() would return all available data.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005161 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:40 +00:00
David Reiss
e5c435cccf THRIFT-929. cpp: Add tests to verify blocking read behavior
Add tests that check to see whether or not read() and borrow() block
when called with a length larger than the amount of data currently
available.

At the moment, not all of the transports behave the same way.  I believe
the desired behavior is:

  When M bytes are available, and 0 < M < N:
  - read(N): return M bytes immediately
  - borrow(N): return NULL immediately

  When 0 bytes are available:
  - read(N): In this case, it is acceptable either to immediately return
    0, or to block until some data is available.  If the transport
    blocks, it returns immediately when some date becomes available,
    even if less than N bytes are available.
  - borrow(N): return NULL immediately

- The borrow() tests fail when using TBufferedTransport.
  TBufferedTransport incorrectly blocks until the amount of data
  requested is available.

- test_read_none_available() fails when using TFramedTransport.
  Calling read() on a TFramedTransport when no data is available throws
  an exception instead of returning 0.

- test_read_none_available() fails when using TFDTransport.  This is
  partly just an artifact of the fact that I use SIGALRM as part of this
  test.  Unlike TSocket, TFDTransport doesn't retry after EINTR.

- test_read_part_available() fails when using TZlibTransport around a
  transport that has blocking read() behavior.  TZlibTransport::read()
  loops calling read() on the underlying transport.  It should probably
  break out of the loop and return to the caller as soon as it has
  uncompressed any data, even if it is less than requested and more
  might be available.  Once some data has been uncompressed,
  TZlibTransport cannot risk calling read() again since it might block.

Will commit fixes for these separately.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005160 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:38 +00:00
David Reiss
d4788dfd4a THRIFT-929. cpp: Test wrapper transports more thoroughly
UpdateS TransportTest so that the wrapper transports
(TBufferedTransport, TFramedTransport, TZlibTransport) are tested with a
wider variety of inner transports.  Previously they were only tested
using TMemoryBuffer.  Now all other transports are also tested wrapped
inside each of these transports.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005159 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:37 +00:00
David Reiss
0c025e8f52 THRIFT-929. cpp: Update TransportTest to test TSocket
Made the TSocket(int fd) constructor public, so TransportTest can create
a connected pair of TSocket transports using socketpair().

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005158 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:36 +00:00
David Reiss
65e62d3741 THRIFT-929. cpp: Reduce default buffer sizes for TransportTest
Reduce the default test buffer sizes by about 30x, reducing the time it
takes to run TransportTest from about 1 minute to about 2 seconds.  I
added a --size-multiplier argument that can be used to adjust the sizes
of all test buffers, so developers can still run with large buffer sizes
when desired.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005157 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:35 +00:00
David Reiss
4f9efdb460 THRIFT-926. cpp: Fix bugs in TFileTransport::flush()
Previously flush() had race conditions that could cause it to return
before all data had actually been flushed to disk.  Now the writer
makes sure both buffer queues have been flushed when forceFlush_ is set.

Also, flush() did not wake up the writer thread, so it normally had to
wait for the writer thread to wake up on its own time.  (By default,
this could take up to 3 seconds.)

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005156 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:33 +00:00
David Reiss
4199377a7c THRIFT-926. cpp: TFileTransportTest timing slightly more lenient
Several of the TFileTransportTest tests check wall clock time to make
sure the writer thread processes operations quickly enough, and isn't
hanging.  However, this can easily result in false failures if we don't
get enough processor time.  This commit makes a few changes to reduce
the number of these failures.

- No longer fail if a single destructor call takes more than 500us.
  We only require 90% of the calls to complete in 500us.  No call may
  take more than 100ms, though.  With this change, the test passes most
  of the time now, even while an "fbmake opt" task is running in
  parallel.

- In the flush_max_us tests, make sure the writer thread is started
  before we start recording timing.  Otherwise, creating the thread
  could take long enough to throw off the numbers for the first fsync()
  call.

Also tested with the pthread_cond_signal() in the TFileTransport
destructor commented out, to make sure the test still fails properly
when the destructor takes too long.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005155 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:31 +00:00
David Reiss
709b69f14c THRIFT-926. cpp: Fix destructor behavior of TFileTransport
Set closing_ to true before we wake up the writer thread in the
destructor.  This way the writer thread flushes the data and exits when
it is woken up.

Previously the writer thread could end up going through 2 full timeout
cycles before exiting.  The writer thread could wake up, notice it has
nothing to do since closing_ is not set, and immediately go back to
sleep.  The destructor would then proceed to call flush(), which would
wait for the writer thread to wake up (1 full time out) and clear the
forceFlush_ flag.  After flush returns, the destructor would set
closing_.  It could take the writer thread another full timeout to wake
up again and process this flag.

There were also some points where the worker threads would detect the
closing_ state in their loops and automatically close the file, but did
not zero out the file descriptor, then the destructer attempted to close
the same file.  Fix by simply zeroing out the fd_ at these points.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005154 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:30 +00:00
David Reiss
0e0eb35452 THRIFT-926. cpp: Don't sleep in TFileTransport if we have data to write
Previously, the TFileTransport writer thread behaved as follows:

  while true:
    wait for main thread to notify new data in enqueueBuffer_
    swap(enqueueBuffer_, dequeueBuffer_)
    write out everything in dequeueBuffer_

Now the behavior is:

  while true:
    if enqueueBuffer_ is empty
      wait for main thread to notify new data in enqueueBuffer_
    swap(enqueueBuffer_, dequeueBuffer_)
    write out everything in dequeueBuffer_

The old behavior had a couple problems:
- Writes that arrived while the writer thread was writing
  dequeueBuffer_ wouldn't get processed immediately.  The writer thread
  would always wait until another write occurred after it started its
  condition variable wait, or until it timed out (3 seconds by default).

- If the main thread was writing fast enough to fill up enqueueBuffer_
  while the writer thread was still writing out dequeueBuffer_, it would
  block the next write call until the writer thread swapped the buffers.
  Unfortunately, the writer thread waits to do this until it the main
  thread notifies it of another write.  This deadlock is only broken by
  the 3 second timeout.  Performance then tanks, since the writer thread
  now always sleeps 3 seconds each time around the loop.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005153 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:29 +00:00
David Reiss
a0e1159716 THRIFT-926. cpp: remove "standalone" distinction in TZlibTransport
Now that TZlibTransport::flush() behaves the same way as other
transports, there is no need to distinguish between RPC and standalone
behavior for TZlibTransport.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005152 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:27 +00:00
David Reiss
e94fa3391d THRIFT-926. cpp: Make TZlibTransport::flush() behave like other transports
Previously, TZlibTransport::flush() finished the zlib stream, so calling
write() after flush() would result in an error.  Now it just flushes the
data, without finishing the stream.  A new TZlibTransport::finish()
function has been added to finish the stream.

This breaks compatibility.  I'm aware of anyone using this code outside
of Facebook, though.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005151 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:26 +00:00
David Reiss
f2abcf9a56 THRIFT-929. cpp: Use boost::lognormal_distribution in ZlibTest
This way we no longer have to have a huge hard-coded list of numbers in
the source code.  The distribution is randomly generated for each run.
(Although the --seed argument can be used for repeatablity.)

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005150 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:24 +00:00
David Reiss
9a961e7750 THRIFT-929. cpp: Convert ZlibTest to use the boost unit test framework
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005149 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:23 +00:00
David Reiss
3cc9dab229 THRIFT-929. cpp: Remove TZlibTest dependency on filesystem data
Previously, ZlibTest read a file from disk to get data to test with.
It would fail unless gen-cpp/DebugProtoTest_types.tcc was present in the
current directory and was at least 32kB long.

Now ZlibTest simply generates 3 separate buffers to test with.  The
first buffer is just all "a"s, the second is some random sequential
runs, and the third is completely random.  They usually seem to have
compression ratios of around 315:1, 4:1, and 1:1, respectively.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005148 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:21 +00:00
David Reiss
56cb796bce THRIFT-929. cpp: Fix a couple minor issues in ZlibTest
- Add a necessary cast.
- Check buffer sizes more carefully to allow for different read/write
  size distributions.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005147 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:20 +00:00
David Reiss
35dc7695a9 THRIFT-929. cpp: Add unit test for transport functionality
Tests various transport types by writing data, and verifying it can be
read back successfully.  Tests both virtual calls (accessed as
TTransport*) and non-virtual calls (accessed as the appropriate pointer
type, or as TBufferBase* when appropriate).

This is similar to some of the tests already performed in
TMemoryBufferTest and ZlibTest.cpp.  However, this tests a few more
transport types, and it interleaves read and write calls more heavily.
(It currently exposes some bugs in flush() in a couple transports.) It
also exercises both the virtual and non-virtual code paths, now that
read() and write() only result in virtual calls when invoked on a
TTransport*.

TFileTransport currently has several race condition bugs, so most of the
TFileTransport tests ususally fail.  It also has some performance bugs,
causing the TFileTransport tests to take a long time.  Will fix those
issues separately.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005146 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:19 +00:00
David Reiss
105961de04 THRIFT-928. cpp: TNonblockingServer: use TSocket and support TClientInfo
Modify TNonblockingServer to use TSocket for I/O and support server
event handlers; this enables TClientInfo to function with a minor change
to the processing loop.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005145 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:17 +00:00
David Reiss
67f56ec6ab THRIFT-926. cpp: Remove TServerSocket as a friend class of TSocket
This is no longer necessary now that TSocket::TSocket(int) is public.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005144 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:16 +00:00
David Reiss
44ff76f514 THRIFT-925. cpp: Add _VALUES_TO_NAMES enum map
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005143 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:15 +00:00
David Reiss
a8af11dde6 THRIFT-926. cpp: Fix an errant argument to a debug statement
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005141 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:11 +00:00
David Reiss
c3b3622158 THRIFT-922. cpp: Add profiling code to help conversion to C++ templates
Add some profiling code to track when potentially unnecessary virtual
calls are made in the thrift C++ serialization and deserialization code.
This can be used to help service implementors determine which places in
their code should be updated to use an appropriate thrift template
class.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005140 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:10 +00:00
David Reiss
2324871334 THRIFT-928. cpp: Thrift Server Client Stats
Add the ability for Thrift servers to monitor client connections.  It is
activated by #including server/TClientInfo.h and creating 1) a
TClientInfoCallHandler passed to the processor with setEventHandler()
and 2) a TClientInforServerHandler passed to the server with
setServerEventHandler().

The result vector, showing active connections, provides client address
and the thrift call it is executing (or last executed), the time
connected, and the number of calls made since connection.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005139 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:08 +00:00
David Reiss
b7762a032a THRIFT-922. cpp: Update C++ generator to emit templatized code
When the "templates" option is passed to the C++ generator, it now emits
templatized versions of the client and processor.  Generated types emit
templatized read() and write() functions.

This allows the generated code to invoke the correct non-virtual
TTransport and TProtocol implementations, resulting in faster
serialization and deserialization.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005138 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:10:00 +00:00
David Reiss
8dfc732af6 THRIFT-922. cpp: Fix C++ compilation when using list<bool>
The STL specializes vector<bool> to store the values as individual bits, rather
than bools.  Therefore, when using a Thrift list<bool>, readBool() gets invoked
not with a bool&, but with a std::vector<bool>::reference.

TProtocol does provide a readBool(std::vector<bool>::reference) implementation.
However, almost all TProtocol subclasses defined only readBool(bool&), which
hides the other overloaded versions of readBool().  As a result, the code
worked only when accessing TProtocol objects via a "TProtocol*", and not
directly via the subclass type.  When using C++ templates, protocol objects do
get invoked via pointers to the subclass type, causing compile failures when
std::vector<bool> is used.

This change updates the various TProtocol implementations to also provide
readBool(std::vector<bool>::reference).

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005137 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:58 +00:00
David Reiss
e71115be6c THRIFT-922. cpp: Templatize binary and compact protocol
Convert TBinaryProtocol and TCompactProtocol to template classes, taking
the transport class as a template parameter.  This allows them to make
non-virtual calls when using the template, improving serialization
performance.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005136 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:56 +00:00
David Reiss
6806fb836a THRIFT-922. cpp: Convert protocol classes to use non-virtual functions
Updated the thrift protocol classes to use non-virtual calls for most
functions.  The correct implementation is determined at compile time via
templates now.  Only the base TProtocol class falls back to using
virtual function calls.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005135 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:52 +00:00
David Reiss
e879c2f4db THRIFT-922. cpp: Convert transport classes to use non-virtual calls
Update the thrift transport classes to use non-virtual calls for most
functions.  The correct implementation is determined at compile time via
templates now.  Only the base TTransport class falls back to using
virtual function calls.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005134 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:50 +00:00
David Reiss
72fd0b415f THRIFT-922. cpp: Add shortcutted version of readAll() in TBufferBase
Just perform a memcpy() if all of the requested data is available in the
buffer.  This improves performance a little in the common case.  It has
a bigger impact with the upcoming template changes.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005133 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:47 +00:00
David Reiss
ea051ca793 THRIFT-922. cpp: When reading strings, borrow first
Attempt to get a pointer to the internal transport buffer before copying
onto the heap.  This improves performance TFramedTransport and
TMemoryBuffer, and with TBufferedTransport if the string fits within the
buffer.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005132 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:46 +00:00
David Reiss
ef7200f6e8 THRIFT-928. cpp: Include request/response size in processor callbacks
Required updating transport interface.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005129 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:42 +00:00
David Reiss
18cd0f0334 THRIFT-928. cpp: Make clients call writeEnd on their transports before flush
Changing the order of these calls makes more sense from the perspective
of logical operations.  It also simplifies the upcoming stats collection
code.  No clients should be affected.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005128 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:39 +00:00
David Reiss
5ddabb8e3f THRIFT-923. cpp: Implement a fully nonblocking server and client
There are three major parts of this:
1/ New callback-style interfaces for for a few key Thrift components:
   TAsyncProcessor for servers and TAsyncChannel for clients.
2/ Concrete implementations of TAsyncChannel and a server for
   TAsyncProcessor based on evhttp.
3/ Async-style code generation for C++

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005127 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:37 +00:00
David Reiss
d7192063e1 THRIFT-928. cpp: Processor-level event callbacks
- Add a TProcessorEventHandler callback interface.
- Add methods to TProcessor to hold an instance of the interface.
- Add code to the compiler to make the processor call callbacks at key points.
- Add an optional processor event handler to the test server.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005126 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:33 +00:00
David Reiss
8c535ab87c THRIFT-922. cpp: Revert the BufferBase part of r750585
r750585 included two logically distinct changes, one of which was not
referenced in the commit message and was not reviewed by a C++
maintainer.  It was committed more-or-less by accident.  This patch
reverts that part of the change since it conflicts with the template
code in some complicated ways.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005125 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 17:09:31 +00:00
Bryan Duxbury
1df96ce22f THRIFT-945. java: TAsyncClient class's currentMethod is never set, hence a second call on the same client will fail if a previous call is ongoing.
This patch adds a test for the problem and fixes the issue by setting the current method after a call has been started.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004865 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 00:28:10 +00:00
Bryan Duxbury
ded25bbe0d THRIFT-941. php: Make PHP C Extension use the defined Protocol writeMessageBegin function
This patch causes the C extension to call into user-land to get the correct writeMessageBegin function.

Patch: Chris Goffinet

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004864 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 00:23:30 +00:00
Bryan Duxbury
c657447e0e THRIFT-932. hs: Haskell tests need to be run through 'make check' (and probably 'cabal check') too
Tests are now self-contained and correctly exit after running. There's a single run script which has improved error messages and defaults to the thrift binary compiled in the current source directory instead of those in PATH. And as a bonus hooks both cabal check and running the tests to make check. 

Patch: Christian Lavoie

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004861 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 00:12:33 +00:00
Bryan Duxbury
ffca7e1720 THRIFT-944. hs: Support all version-4s of base
Patch: Christian Lavoie

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004859 13f79535-47bb-0310-9956-ffa450edef68
2010-10-06 00:01:43 +00:00
Anthony F. Molinaro
371372e832 THRIFT-933 : looks fine, and cabal check looks good as well
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004716 13f79535-47bb-0310-9956-ffa450edef68
2010-10-05 17:08:08 +00:00
Anthony F. Molinaro
687c412c10 THRIFT-943: fix typo
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004709 13f79535-47bb-0310-9956-ffa450edef68
2010-10-05 16:47:52 +00:00
David Reiss
3e07a8f233 erlang: Use Automake SUBDIRS instead of a manual forwarding rule
Previously, lib/erl/Makefile.am would forward rules like "all" and
"clean" to the src subdir by manually invoking a submake.  However,
specifying src as a SUBDIR accomplishes this more easily and also
ensures that other rules like "distclean" work.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004510 13f79535-47bb-0310-9956-ffa450edef68
2010-10-05 02:38:59 +00:00
David Reiss
653eadab2f THRIFT-841. Exclude generated php and erlang Makefiles from "make dist"
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004509 13f79535-47bb-0310-9956-ffa450edef68
2010-10-05 02:38:58 +00:00
Roger Meier
8a441a46ad THRIFT-940 use BOOST_LDFLAGS for unit tests, required to build on Mac OS X
Patch: Christian Lavoie


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004431 13f79535-47bb-0310-9956-ffa450edef68
2010-10-04 21:13:36 +00:00
Bryan Duxbury
5bb525ccf9 THRIFT-939. java: optional binary fields throw NPE on default byte[] getters
This patch deals with null ByteBuffers correctly.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1003212 13f79535-47bb-0310-9956-ffa450edef68
2010-09-30 19:36:05 +00:00
Bryan Duxbury
e1ae6b45d5 bump versions to 0.6.0
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1002294 13f79535-47bb-0310-9956-ffa450edef68
2010-09-28 17:44:45 +00:00
Bryan Duxbury
a18364ac88 THRIFT-900. cpp: Unix domain socket
This patch adds a new Unix Socket transport.

Patch: Roger Meier

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1002179 13f79535-47bb-0310-9956-ffa450edef68
2010-09-28 14:36:07 +00:00
Todd Lipcon
b1a283f11e THRIFT-912. java: Fix some bugs in SASL implementation, update protocol spec slightly
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001973 13f79535-47bb-0310-9956-ffa450edef68
2010-09-28 00:11:01 +00:00
Todd Lipcon
84a7c2a901 THRIFT-931. java: Add log4j.properties missing from previous commit
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001971 13f79535-47bb-0310-9956-ffa450edef68
2010-09-28 00:02:53 +00:00
Todd Lipcon
fcaa8f5364 THRIFT-931. java: Use log4j for Java tests
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001967 13f79535-47bb-0310-9956-ffa450edef68
2010-09-27 23:51:22 +00:00
Anthony F. Molinaro
fa6eaca762 THRIFT-919 : updated haskell README
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001830 13f79535-47bb-0310-9956-ffa450edef68
2010-09-27 17:33:47 +00:00
David Reiss
abafd79aee THRIFT-335. python: Initial implementation of TCompactProtocol
Seems to work.  No interoperability testing with other languages yet.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001827 13f79535-47bb-0310-9956-ffa450edef68
2010-09-27 17:28:15 +00:00
Anthony F. Molinaro
a5df7c7b0e THRIFT-905: hook haskell into autoconf
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001823 13f79535-47bb-0310-9956-ffa450edef68
2010-09-27 17:22:17 +00:00
Bryan Duxbury
3a3686fd51 THRIFT-917. java: THsHaServer should not accept an ExecutorService without catching RejectedExecutionException
This patch catches RejectedExecutionException from requestInvoke and closes the client connection when that occurs.

Patch: Ed Ceaser

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001820 13f79535-47bb-0310-9956-ffa450edef68
2010-09-27 17:12:36 +00:00
Anthony F. Molinaro
daef1c8ed0 THRIFT-743: seems to compile and doesn't break other tests, so seems fine for now
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001353 13f79535-47bb-0310-9956-ffa450edef68
2010-09-26 04:25:36 +00:00
Anthony F. Molinaro
7466bcd5d7 THRIFT-914 : haskell bindings compile easier
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1000653 13f79535-47bb-0310-9956-ffa450edef68
2010-09-23 22:28:09 +00:00
Bryan Duxbury
75a33e858f THRIFT-906. hs: Improve type mappings
This patch fixes the type mappings to be more sane. It *will* break existing code, but the breakages should be well worth it.

Patch: Christian Lavoie

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999700 13f79535-47bb-0310-9956-ffa450edef68
2010-09-22 00:48:56 +00:00
Bryan Duxbury
6a1fb17a25 THRIFT-909. rb: allow block argument to struct constructor
This patch allows the user to pass a block to generated structs' constructors. The block will receive and instance of the new object.

Patch: Michael Stockton

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999487 13f79535-47bb-0310-9956-ffa450edef68
2010-09-21 16:30:58 +00:00
Bryan Duxbury
1237dcb099 THRIFT-880. javame: JavaME code generator and runtime library
This patch adds a new generator and library that produces code suitable for use in JavaME environments.

Patch: David Engberg

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999022 13f79535-47bb-0310-9956-ffa450edef68
2010-09-20 17:49:09 +00:00
Bryan Duxbury
e59a80fbf9 THRIFT-901. hs: Allow the bindings to compile without -fglasgow-exts and with -Wall -Werror
This patch makes the bindings compile with pedantic warning levels, and individually declares each required language extension.

Patch: Christian Lavoie

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998955 13f79535-47bb-0310-9956-ffa450edef68
2010-09-20 15:21:37 +00:00
Bryan Duxbury
fd32d79afa THRIFT-323. csharp: TJSONProtocol
This patch adds support for the JSON Protocol to the csharp library. 

Patch: Roger Meier

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998539 13f79535-47bb-0310-9956-ffa450edef68
2010-09-18 20:51:25 +00:00
T Jake Luciani
416eea9802 THRIFT-885: fix string encoding
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998371 13f79535-47bb-0310-9956-ffa450edef68
2010-09-17 23:38:25 +00:00
Bryan Duxbury
83c4795870 THRIFT-899. rb: Ruby read timeouts can sometimes be 2x what they should be
This patch makes sure that we don't wait longer than necessary for timeouts.

Patch: Ryan King

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998303 13f79535-47bb-0310-9956-ffa450edef68
2010-09-17 20:17:21 +00:00
Bryan Duxbury
d920765c66 THRIFT-882. java: deep copy of binary fields does not copy ByteBuffer characteristics (arrayOffset, position)
This patch ensures that binary fields are copied correctly.



git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998275 13f79535-47bb-0310-9956-ffa450edef68
2010-09-17 19:27:36 +00:00
Bryan Duxbury
a7420b6593 THRIFT-894. java: Make default accessors for binary fields return byte[]; provide new accessors to get ByteBuffer version
This patch causes the underlying ByteBuffer that backs a binary field to be hidden behind a default accessor that provides a byte[] interface. This should allow users who skipped 0.4 to update their generated code without breaking any of their other code. A new accessor has been added that allows a way down to the underlying ByteBuffer for those experts who want to take advantage.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996579 13f79535-47bb-0310-9956-ffa450edef68
2010-09-13 15:42:36 +00:00
Bryan Duxbury
a4c6d64e80 java: tiny improvement to async client manager test, for real this time
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996329 13f79535-47bb-0310-9956-ffa450edef68
2010-09-12 15:31:50 +00:00
Bryan Duxbury
a97414674c java: tiny improvement to async client manager test
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996328 13f79535-47bb-0310-9956-ffa450edef68
2010-09-12 15:30:06 +00:00
Bryan Duxbury
13ad873d18 THRIFT-896. java: TNonblockingSocket.isOpen() returns true even after close()
This patch makes TNonblockingSocket.isOpen() have more expected behavior.

Patch: Eric Jensen

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995939 13f79535-47bb-0310-9956-ffa450edef68
2010-09-10 19:08:00 +00:00
Bryan Duxbury
34628f3e7a THRIFT-250. java: ExecutorService as a constructor parameter for TServer
This patch adds a new constructor that accepts an ExecutorService.

Patch: Ed Ceaser

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995847 13f79535-47bb-0310-9956-ffa450edef68
2010-09-10 16:16:01 +00:00
Bryan Duxbury
855294b213 THRIFT-888. java: async client should also have nonblocking connect
This patch adds optional nonblocking connect behavior.

Patch: Eric Jensen

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995262 13f79535-47bb-0310-9956-ffa450edef68
2010-09-08 21:47:45 +00:00
Bryan Duxbury
d483712972 THRIFT-876. java: Add SASL support
This patch adds support for a SASL-secured transport to the Java library. In its current form, it only works for the blocking-IO servers.

Patch: Aaron T Meyers

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993563 13f79535-47bb-0310-9956-ffa450edef68
2010-09-08 00:06:35 +00:00
Anthony F. Molinaro
ef16420d54 THRIFT-698 - fix .app file, remove unused parts of build system, updated LICENSE to reflect changes
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993207 13f79535-47bb-0310-9956-ffa450edef68
2010-09-07 03:35:30 +00:00
Bryan Duxbury
7a0825c34d THRIFT-856. cpp: Building cpp library fails on OS X with malloc and free not being declared in scope
This patch adds include which seems to fix the problem for some people.

Patch: James Clarke

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992013 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 16:42:18 +00:00
David Reiss
a9ca25a81e THRIFT-666. python: Allow THttpServer's responses to be overridden
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991986 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:36:03 +00:00
David Reiss
c564fa5692 THRIFT-596. python: Make the TBufferedTransport read buffer size configurable
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991985 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:36:00 +00:00
David Reiss
8ede81860c THRIFT-798. cpp: Reduce resource leakage by TNonblockingServer destructor
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991980 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:26:28 +00:00
Bryan Duxbury
383e949566 THRIFT-567. cpp: Can't immediately stop a TSimpleServer thread that is idle
This interrupts the server in addition to setting the stop flag.

Patch: Rush Manbert

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991974 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:16:56 +00:00
Bryan Duxbury
d6a02ff99b THRIFT-597. py: Python THttpServer performance improvements
This enables buffered I/O and ThreadingMixin.

Patch: David Reiss

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991971 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:14:27 +00:00
Bryan Duxbury
f2ef59ffbf THRIFT-598. py: Allow Python's threading servers to use daemon threads
Patch: David Reiss

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991969 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:12:06 +00:00
Bryan Duxbury
472eb3c94c THRIFT-629. cocoa: Unused Field In TSocketServer Appears To Break iPhone Build
Remove the unused field.

Patch: Jon S Akhtar

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991962 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 15:02:06 +00:00
Anthony F. Molinaro
7112c0712e THRIFT-875 : missing dist file
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991813 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 05:09:05 +00:00
Bryan Duxbury
727d67dcfa THRIFT-721. py: THttpClient ignores url parameters
Respect query string in THttpClient and generated remotes. Also, add an error message on unknown methods.

Patch: Thomas Kho

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991786 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 01:00:19 +00:00
Bryan Duxbury
010f1e09d0 THRIFT-756. cpp: Exposing TSocket(int) constructor to public
This patch changes the raw socket handle constructor from protected to public.

Patch: Rajat Goel

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991785 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 00:56:53 +00:00
Bryan Duxbury
ee8255d086 THRIFT-758. perl: incorrect deference in exception handling
Patch: Yann Kerherve

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991784 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 00:52:46 +00:00
Bryan Duxbury
686d92ce66 THRIFT-824. py: TApplicationException.__str__() refers to class constants as globals
Refer to constants via 'self'.

Patch: Peter Schuller

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991781 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 00:36:18 +00:00
Bryan Duxbury
a55f51d870 THRIFT-840. perl: Perl protocol handler could be more robust against unrecognised types
This patch causes the protocol to throw an exception when it sees an unrecognized type instead of silently doing nothing.

Patch: Conrad Hughes

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991778 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 00:24:50 +00:00
David Reiss
38104c8234 THRIFT-886. erlang: Fix dialyzer warning in thrift_http_transport
This spec should have been updated in r990996

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991603 13f79535-47bb-0310-9956-ffa450edef68
2010-09-01 16:54:05 +00:00
David Reiss
ea4c9816fc THRIFT-506. Allow Thrift to be built without the C++ library
Currently, this is only possible by explicitly passing --without-cpp.
It might be better to name it --without-cxx, but it is probably more
important to keep consistency with the "cpp" generator and "lib/cpp".

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991248 13f79535-47bb-0310-9956-ffa450edef68
2010-08-31 16:51:21 +00:00
David Reiss
351e22b52a THRIFT-503. cpp: Move the tests built by "make check" under lib/cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991246 13f79535-47bb-0310-9956-ffa450edef68
2010-08-31 16:51:19 +00:00
David Reiss
2b45589aa3 THRIFT-500. Remove unnecessary "ACLOCAL_AMFLAGS" line from lib/cpp/Makefile.am
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991242 13f79535-47bb-0310-9956-ffa450edef68
2010-08-31 16:51:11 +00:00
David Reiss
5f11084c06 THRIFT-785. erlang: Eliminate log spew with framed transport
If we get an error when reading from the underlying transport, propagate
it out instead of dying and generating error logs.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991005 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:11:58 +00:00
David Reiss
f4494ee3a9 erlang: Un-revert r988722
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991003 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:06:03 +00:00
David Reiss
c549f7b086 erlang: Eliminate "behaviour undefined" warnings
Build behaviour modules first and include the ebin directory in
the Erlang code path during the rest of the build.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991002 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:06:01 +00:00
David Reiss
df2047e4b1 erlang: Parse multiple options properly in disk_log_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991001 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:06:00 +00:00
David Reiss
b4ab008476 erlang: Verify elt/key/val when reading list/set/map
For now, exit on a badmatch if one is wrong.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991000 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:58 +00:00
David Reiss
5ed313d998 erlang: Fix several compilation warnings
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990999 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:57 +00:00
David Reiss
cf7f3973bb erlang: Rename _impl headers to _behaviour
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990998 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:55 +00:00
David Reiss
a9c5283329 erlang: Fix a few spelling errors
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990997 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:53 +00:00
David Reiss
3a292b4441 erlang: Don't use a separate process for http_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990996 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:51 +00:00
David Reiss
48539bc960 erlang: Don't use a separate process memory_buffer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990995 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 22:05:50 +00:00