diff --git a/lib/WebGUI/AssetLineage.pm b/lib/WebGUI/AssetLineage.pm index e5797e46a..df3615497 100644 --- a/lib/WebGUI/AssetLineage.pm +++ b/lib/WebGUI/AssetLineage.pm @@ -390,9 +390,13 @@ sub getLineage { my $tables = "asset left join assetData on asset.assetId=assetData.assetId "; if (exists $rules->{joinClass}) { my $className = $rules->{joinClass}; - my $cmd = "use ".$className; - eval ($cmd); - $self->session->errorHandler->fatal("Couldn't compile asset package: ".$className.". Root cause: ".$@) if ($@); + my $file = $className; + $file =~ s{::}{/}g; + $file .= '.pm'; + if (!exists $INC{ $file }) { ##Alread loaded? + eval{ require $file }; + $self->session->errorHandler->fatal("Couldn't compile asset package: ".$className.". Root cause: ".$@) if ($@); + } foreach my $definition (@{$className->definition($self->session)}) { unless ($definition->{tableName} eq "asset") { my $tableName = $definition->{tableName};