X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSourceHandle.pm;h=169cb4a787508d9bc11398b4a2bb6556cb4d8ea4;hb=73f54e275e7dc98b4a082475ff252afdbeca182f;hp=733db837d4e00699269f0c8518c923ca01e79486;hpb=f9080e4502d65c87e9c2486ca6a76b166cf1ca8f;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSourceHandle.pm b/lib/DBIx/Class/ResultSourceHandle.pm index 733db83..169cb4a 100644 --- a/lib/DBIx/Class/ResultSourceHandle.pm +++ b/lib/DBIx/Class/ResultSourceHandle.pm @@ -5,7 +5,7 @@ use warnings; use base qw/DBIx::Class/; -use Try::Tiny; +use DBIx::Class::_Util 'dbic_internal_try'; use namespace::clean; use overload @@ -68,7 +68,7 @@ sub resolve { # vague error message as this is never supposed to happen "Unable to resolve moniker '%s' - please contact the dev team at %s", $_[0]->source_moniker, - 'http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class.pm#GETTING_HELP/SUPPORT', + DBIx::Class::_ENV_::HELP_URL, ), 'full_stacktrace'); } @@ -112,11 +112,16 @@ sub STORABLE_thaw { } elsif( my $rs = $from_class->result_source_instance ) { # in the off-chance we are using CDBI-compat and have leaked $schema already - if( my $s = try { $rs->schema } ) { + if( my $s = dbic_internal_try { $rs->schema } ) { $self->schema( $s ); } else { - $rs->source_name( $self->source_moniker ); + # FIXME do not use accessor here - will trigger the divergent meta logic + # Ideally this should be investigated and fixed properly, but the + # codepath is so obscure, and the trigger point (t/52leaks.t) so bizarre + # that... meh. + $rs->{source_name} = $self->source_moniker; + $rs->{_detached_thaw} = 1; $self->_detached_source( $rs ); } @@ -128,9 +133,16 @@ sub STORABLE_thaw { } } -=head1 AUTHOR +=head1 FURTHER QUESTIONS? + +Check the list of L. + +=head1 COPYRIGHT AND LICENSE -Ash Berlin C<< >> +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L. =cut