# File lib/puppet/provider/parsedfile.rb, line 240
240:   def self.retrieve(path)
241:     # XXX We need to be doing something special here in case of failure.
242:     text = target_object(path).read
243:     if text.nil? or text == ""
244:       # there is no file
245:       return []
246:     else
247:       # Set the target, for logging.
248:       old = @target
249:       begin
250:         @target = path
251:         return self.parse(text)
252:       rescue Puppet::Error => detail
253:         detail.file = @target
254:         raise detail
255:       ensure
256:         @target = old
257:       end
258:     end
259:   end