[Bast-commits] r5785 - in trunk/DBIx-Class-Schema-Loader: .
lib/DBIx/Class/Schema/Loader
kane at dev.catalyst.perl.org
kane at dev.catalyst.perl.org
Fri Mar 20 20:21:00 GMT 2009
Author: kane
Date: 2009-03-20 20:21:00 +0000 (Fri, 20 Mar 2009)
New Revision: 5785
Modified:
trunk/DBIx-Class-Schema-Loader/
trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/DBI.pm
Log:
r3538 at ds013: kane | 2009-03-20 21:18:21 +0100
* must use $UNIVERSAL::require::ERROR, $@ is not safe. See RT #44444
Property changes on: trunk/DBIx-Class-Schema-Loader
___________________________________________________________________
Name: svk:merge
- bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/current:3362
+ 6bb30d22-934f-40ac-a2a4-28ad36850c49:/local/cat/DBIx-Class-Schema-Loader:3538
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/current:3362
Modified: trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
===================================================================
--- trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm 2009-03-20 15:23:40 UTC (rev 5784)
+++ trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm 2009-03-20 20:21:00 UTC (rev 5785)
@@ -299,10 +299,10 @@
my $real_inc_path = Cwd::abs_path($inc_path);
return if $real_inc_path eq $real_dump_path;
- $class->require;
- croak "Failed to load external class definition"
- . " for '$class': $@"
- if $@;
+ # must use $UNIVERSAL::require::ERROR, $@ is not safe. See RT #44444 --kane
+ $class->require or
+ croak "Failed to load external class definition"
+ . " for '$class': $UNIVERSAL::require::ERROR";
# If we make it to here, we loaded an external definition
warn qq/# Loaded external class definition for '$class'\n/
@@ -584,7 +584,7 @@
foreach (@_) {
warn "$target: use $_;" if $self->debug;
$self->_raw_stmt($target, "use $_;");
- $_->require or croak ($_ . "->require: $@");
+ $_->require or croak ($_ . "->require: $UNIVERSAL::require::ERROR");
$evalstr .= "package $target; use $_;";
}
eval $evalstr if $evalstr;
@@ -600,7 +600,7 @@
warn "$target: use base qw/ $blist /;" if $self->debug && @_;
$self->_raw_stmt($target, "use base qw/ $blist /;") if @_;
foreach (@_) {
- $_->require or croak ($_ . "->require: $@");
+ $_->require or croak ($_ . "->require: $UNIVERSAL::require::ERROR");
$schema_class->inject_base($target, $_);
}
}
Modified: trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/DBI.pm
===================================================================
--- trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/DBI.pm 2009-03-20 15:23:40 UTC (rev 5784)
+++ trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/DBI.pm 2009-03-20 20:21:00 UTC (rev 5785)
@@ -40,8 +40,12 @@
my $dbh = $self->schema->storage->dbh;
my $driver = $dbh->{Driver}->{Name};
my $subclass = 'DBIx::Class::Schema::Loader::DBI::' . $driver;
+
+ # must use $UNIVERSAL::require::ERROR, $@ is not safe. See RT #44444 --kane
$subclass->require;
- if($@ && $@ !~ /^Can't locate /) {
+ if($UNIVERSAL::require::ERROR &&
+ $UNIVERSAL::require::ERROR !~ /^Can't locate /
+ ) {
croak "Failed to require $subclass: $@";
}
elsif(!$@) {
More information about the Bast-commits
mailing list