From 53b7a7bfcba96e971c0a590c950a36a892c2dc37 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 24 Dec 2007 06:50:02 +0000 Subject: [PATCH] convert AssetLineage from stringy to blocky eval --- lib/WebGUI/AssetLineage.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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};