use base qw/DBIx::Class/;
-use Try::Tiny;
+use DBIx::Class::_Util 'dbic_internal_try';
use namespace::clean;
use overload
}
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 );
}