THRIFT-2: check for thrift::socket handle being null

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@728860 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/perl/lib/Thrift/Socket.pm b/lib/perl/lib/Thrift/Socket.pm
index 740e048..732f35a 100644
--- a/lib/perl/lib/Thrift/Socket.pm
+++ b/lib/perl/lib/Thrift/Socket.pm
@@ -84,7 +84,11 @@
 {
     my $self = shift;
 
-    return $self->{handle}->handles->[0]->connected;
+    if( defined $self->{handle} ){
+        return ($self->{handle}->handles())[0]->connected;
+    }
+
+    return 0;
 }
 
 #
@@ -120,7 +124,9 @@
 {
     my $self = shift;
 
-    close( ($self->{handle}->handles())[0] );
+    if( defined $self->{handle} ){
+        close( ($self->{handle}->handles())[0] );
+    }
 }
 
 #
@@ -135,6 +141,8 @@
     my $len  = shift;
 
 
+    return unless defined $self->{handle};
+
     my $pre = "";
     while (1) {
 
@@ -178,6 +186,8 @@
     my $self = shift;
     my $len  = shift;
 
+    return unless defined $self->{handle};
+
     #check for timeout
     my @sockets = $self->{handle}->can_read( $self->{sendTimeout} / 1000 );
 
@@ -213,6 +223,8 @@
     my $buf  = shift;
 
 
+    return unless defined $self->{handle};
+
     while (length($buf) > 0) {
 
 
@@ -243,6 +255,9 @@
 sub flush
 {
     my $self = shift;
+
+    return unless defined $self->{handle};
+
     my $ret  = ($self->{handle}->handles())[0]->flush;
 }