[
https://issues.apache.org/jira/browse/THRIFT-3191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14647616#comment-14647616
]
Hudson commented on THRIFT-3191:
--------------------------------
SUCCESS: Integrated in Thrift #1629 (See
[https://builds.apache.org/job/Thrift/1629/])
THRIFT-3053: Added perl SSL Socket support, split SSLSocket and SSLServerSocket
out from their base classes, fixed THRIFT-3191 generated perl compiler
exception handling code, added perl to make cross, fixed THRIFT-3189 allowing
perl to listen on a specific interface through construction arguments. Did not
add support in the perl client SSLSocket to verify server certificate
authenticity at this time. (roger: rev f5f1b35a7d1ce819bdfdc966741399605b051c92)
* lib/perl/lib/Thrift/SSLSocket.pm
* lib/perl/lib/Thrift/Server.pm
* test/known_failures_Linux.json
* compiler/cpp/src/generate/t_perl_generator.cc
* lib/perl/lib/Thrift/Socket.pm
* test/perl/TestClient.pl
* test/perl/TestServer.pl
* lib/perl/lib/Thrift/FramedTransport.pm
* build/travis/installDependencies.sh
* lib/perl/lib/Thrift/ServerSocket.pm
* lib/perl/lib/Thrift/SSLServerSocket.pm
* test/tests.json
* lib/perl/lib/Thrift.pm
* lib/perl/README.md
> Perl compiler does not add support for unexpected exception handling
> --------------------------------------------------------------------
>
> Key: THRIFT-3191
> URL: https://issues.apache.org/jira/browse/THRIFT-3191
> Project: Thrift
> Issue Type: Bug
> Components: Perl - Compiler
> Affects Versions: 0.9.2
> Reporter: James E. King, III
> Assignee: James E. King, III
> Priority: Critical
> Fix For: 0.9.3
>
>
> While adding "make cross" test server support for some other refactoring I
> found that the generated code to handle testException exception responses
> does not work properly. The test says that the code can die with the
> specified exceptions, but it can also die with Thrift::TException.
> The generated code that fails in ThriftTest.pm:
> {noformat}
> sub process_testException {
> my ($self, $seqid, $input, $output) = @_;
> my $args = new ThriftTest::ThriftTest_testException_args();
> $args->read($input);
> $input->readMessageEnd();
> my $result = new ThriftTest::ThriftTest_testException_result();
> eval {
> $self->{handler}->testException($args->arg);
> }; if( UNIVERSAL::isa($@,'ThriftTest::Xception') ){
> $result->{err1} = $@;
> }
> $output->writeMessageBegin('testException', TMessageType::REPLY, $seqid);
> $result->write($output);
> $output->writeMessageEnd();
> $output->getTransport()->flush();
> }
> {noformat}
> If the resulting implementation dies with a {{new
> Thrift::TException("foo")}}, the C++ client side gets a void back.
> The result should be a TMessageType::EXCEPTION so that the client understands
> something went wrong at a more fundamental level than in the handler.
> There are a number of other issues with "make cross", for example
> TApplicationException's constructor in perl doesn't pass the arguments to the
> TException::SUPER::new method. All of these things need to be fixed in order
> for make cross to work.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)