This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag 0.55
in repository libinline-java-perl.

commit 5ff99e9a10a2922a89c7bf6f661e8504c0c80154
Author: Patrick LeBoutillier <p...@cpan.org>
Date:   Thu Dec 6 18:10:28 2001 +0000

    *** empty log message ***
---
 Java.pm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 80 insertions(+), 2 deletions(-)

diff --git a/Java.pm b/Java.pm
index 92927cb..6d69aaa 100644
--- a/Java.pm
+++ b/Java.pm
@@ -2,12 +2,12 @@ package Inline::Java ;
 @Inline::Java::ISA = qw(Inline Exporter) ;
 
 # Export the cast function if wanted
-@EXPORT_OK = qw(cast study_classes) ;
+@EXPORT_OK = qw(cast study_classes caught) ;
 
 
 use strict ;
 
-$Inline::Java::VERSION = '0.30' ;
+$Inline::Java::VERSION = '0.31' ;
 
 
 # DEBUG is set via the DEBUG config
@@ -51,6 +51,10 @@ my $JVM = undef ;
 my $INLINES = {} ;
 
 
+# Stores the last uncaught exception
+my $UNCAUGHT_EXCEPTION = undef ;
+
+
 # Here is some code to figure out if we are running on command.com
 # shell under Windows.
 my $COMMAND_COM = 
@@ -198,6 +202,9 @@ sub _validate {
                        }
                        $o->{ILSM}->{$key} = $value ;
                }
+               elsif ($key eq 'REMOTE_HOST'){
+                       $o->{ILSM}->{$key} = $value ;
+               }
                elsif ($key eq 'SHARED_JVM'){
                        $o->{ILSM}->{$key} = $value ;
                }
@@ -238,6 +245,12 @@ sub _validate {
        if (($o->{ILSM}->{JNI})&&($o->{ILSM}->{SHARED_JVM})){
                croak("You can't use the 'SHARED_JVM' option in 'JNI' mode") ;
        }
+       if (($o->{ILSM}->{JNI})&&($o->{ILSM}->{REMOTE_HOST})){
+               croak("You can't use the 'REMOTE_HOST' option in 'JNI' mode") ;
+       }
+       if (($o->{ILSM}->{REMOTE_HOST})&&($o->{ILSM}->{SHARED_JVM})){
+               croak("You can't use the 'REMOTE_HOST' option in combination 
with the 'SHARED_JVM' option") ;
+       }
 
        $o->set_java_bin() ;
 
@@ -1345,6 +1358,71 @@ sub study_classes {
 }
 
 
+sub try (&){
+       my $coderef = shift ;
+       eval {
+               $coderef->() ;
+       } ;
+       my $e = $@ ;
+       if ($e){
+               if (! UNIVERSAL::isa($e, "Inline::Java::Object")){
+                       die $e ;
+               }
+
+               $UNCAUGHT_EXCEPTION = $@ ;
+               $@ = undef ;
+       }
+}
+
+
+sub catch ($$){
+       my $class = shift ;
+       my $coderef = shift ;
+
+       $class = Inline::Java::Class::ValidateClass($class) ;
+
+       my $e = $UNCAUGHT_EXCEPTION ;
+       if ($e){
+               if (UNIVERSAL::isa($e, "Inline::Java::Object")){
+                       my ($msg, $score) = $e->__isa($class) ;
+                       if ($msg){
+                               croak $msg ;
+                       }
+                       $coderef->($e) ;
+                       # clear $@ for other blocks that follow
+                       $UNCAUGHT_EXCEPTION = undef ;
+               }
+       }
+}
+
+
+sub caught {
+       my $class = shift ;
+
+       my $e = $@ ;
+
+       $class = Inline::Java::Class::ValidateClass($class) ;
+
+       my $ret = 0 ;
+       if (($e)&&(UNIVERSAL::isa($e, "Inline::Java::Object"))){
+               my ($msg, $score) = $e->__isa($class) ;
+               if ($msg){
+                       croak $msg ;
+               }
+               $ret = 1 ;
+       }
+       $@ = $e ;
+
+       return $ret ;
+}
+
+
+sub with (&){
+       my $coderef = shift ;
+
+       return $coderef ;
+}
+
 
 1 ;
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libinline-java-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to