<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _process_zero_length(self, nozero, allow_arbitrary_shift):
 """ If ``nozero`` is ``True``, modify the sync map fragment list so that no fragment will have zero length. """

        self.log(u"Called _process_zero_length")
        if not nozero:
            self.log(u"Processing zero length intervals not requested: returning")
            return
        self.log(u"Processing zero length intervals requested")
        self.log(u"  Checking and fixing...")
        duration = self.rconf[RuntimeConfiguration.ABA_NO_ZERO_DURATION]
        self.log([u"  Requested no zero duration: %.3f", duration])
        if not allow_arbitrary_shift:
            self.log(u"  No arbitrary shift => taking max with mws")
            duration = self.rconf.mws.geq_multiple(duration)
        self.log([u"  Actual no zero duration: %.3f", duration])
        # ignore HEAD and TAIL
        max_index = len(self.smflist) - 1
        self.smflist.fix_zero_length_fragments(
            duration=duration,
            min_index=1,
            max_index=max_index
        )
        self.log(u"  Checking and fixing... done")
        if self.smflist.has_zero_length_fragments(1, max_index):
            self.log_warn(u"  The fragment list still has fragments with zero length")
        else:
            self.log(u"  The fragment list does not have fragments with zero length")