import_if_possible calls itself recursively, but it was failing to pass
its block parameter to its younger self. Thus when the inner call
reached the un-blocked case, it raised an exception rather than doing
something useful.

Signed-off-by: Jesse Wolfe <[email protected]>
---
 lib/puppet/parser/type_loader.rb |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/puppet/parser/type_loader.rb b/lib/puppet/parser/type_loader.rb
index e56ab94..6c32f6a 100644
--- a/lib/puppet/parser/type_loader.rb
+++ b/lib/puppet/parser/type_loader.rb
@@ -126,16 +126,16 @@ class Puppet::Parser::TypeLoader
 
   # Utility method factored out of load for handling thread-safety.
   # This isn't tested in the specs, because that's basically impossible.
-  def import_if_possible(file)
+  def import_if_possible(file, &blk)
     return if @loaded.include?(file)
     begin
       case @loading.owner_of(file)
       when :this_thread
         return
       when :another_thread
-        return import_if_possible(file)
+        return import_if_possible(file, &blk)
       when :nobody
-        yield
+        blk.call
       end
     rescue Puppet::ImportError => detail
       # We couldn't load the item
-- 
1.7.0.4

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to