# File lib/puppet/type/file/checksum.rb, line 159
159:     def handlesum
160:         currentvalue = self.retrieve
161:         if currentvalue.nil?
162:             raise Puppet::Error, "Checksum state for %s is somehow nil" %
163:                 @resource.title
164:         end
165: 
166:         if self.insync?(currentvalue)
167:             self.debug "Checksum is already in sync"
168:             return nil
169:         end
170:         # If we still can't retrieve a checksum, it means that
171:         # the file still doesn't exist
172:         if currentvalue == :absent
173:             # if they're copying, then we won't worry about the file
174:             # not existing yet
175:             return nil unless @resource.property(:source)
176:         end
177: 
178:         # If the sums are different, then return an event.
179:         if self.updatesum(currentvalue)
180:             return :file_changed
181:         else
182:             return nil
183:         end
184:     end