diff --git a/lib/puppet/util/autoload.rb b/lib/puppet/util/autoload.rb
index 69a80fa..89b241a 100644
--- a/lib/puppet/util/autoload.rb
+++ b/lib/puppet/util/autoload.rb
@@ -63,11 +63,15 @@ class Puppet::Util::Autoload
unless defined? @wrap
@wrap = true
end
+
+ @could_not_find = {}
end
def load(name)
+ return false if already_missed?(name)
+
path = name.to_s + ".rb"
eachdir do |dir|
@@ -87,12 +91,21 @@ class Puppet::Util::Autoload
puts detail.backtrace
end
end
- return false
+ return could_not_find(name)
end
end
+ return could_not_find(name)
+ end
+
+ def could_not_find(name)
+ @could_not_find[name.to_s] = true
return false
end
+ def already_missed?(name)
+ @could_not_find.include?(name.to_s)
+ end
+
def loaded(name, file)