# File lib/puppet/provider/parsedfile.rb, line 251
251:     def self.retrieve(path)
252:         # XXX We need to be doing something special here in case of failure.
253:         text = target_object(path).read
254:         if text.nil? or text == ""
255:             # there is no file
256:             return []
257:         else
258:             # Set the target, for logging.
259:             old = @target
260:             begin
261:                 @target = path
262:                 return self.parse(text)
263:             rescue Puppet::Error => detail
264:                 detail.file = @target
265:                 raise detail
266:             ensure
267:                 @target = old
268:             end
269:         end
270:     end