[ 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)