X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSourceHandle.pm;h=169cb4a787508d9bc11398b4a2bb6556cb4d8ea4;hb=97940e368df996e1fe6111fb14f560594dc4c0b2;hp=690fe2117952e7dd6d0483f0c13151848ca2b148;hpb=3b80fa31b60050d4c8df91457ba6fd51b579a7a6;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSourceHandle.pm b/lib/DBIx/Class/ResultSourceHandle.pm index 690fe21..169cb4a 100644 --- a/lib/DBIx/Class/ResultSourceHandle.pm +++ b/lib/DBIx/Class/ResultSourceHandle.pm @@ -5,9 +5,7 @@ use warnings; use base qw/DBIx::Class/; -use DBIx::Class::Exception; -use Try::Tiny; - +use DBIx::Class::_Util 'dbic_internal_try'; use namespace::clean; use overload @@ -70,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'); } @@ -98,7 +96,7 @@ sub STORABLE_freeze { =head2 STORABLE_thaw Thaws frozen handle. Resets the internal schema reference to the package -variable C<$thaw_schema>. The recommended way of setting this is to use +variable C<$thaw_schema>. The recommended way of setting this is to use C<< $schema->thaw($ice) >> which handles this for you. =cut @@ -114,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 ); } @@ -130,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