code: public static ScheduleExpression copyBase(ScheduleExpression schedule) // d632906
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "copy copyBase: " + Util.identity(schedule));
  
          // 'schedule' could be a subclass of ScheduleExpression.
          // Use only the base class constructor.
  
          return new ScheduleExpression()
                          .start(schedule.getStart() == null ? null : new Date(schedule.getStart().getTime()))
                          .end(schedule.getEnd() == null ? null : new Date(schedule.getEnd().getTime()))
                          .timezone(schedule.getTimezone())
                          .second(schedule.getSecond())
                          .minute(schedule.getMinute())
                          .hour(schedule.getHour())
                          .dayOfMonth(schedule.getDayOfMonth())
                          .dayOfWeek(schedule.getDayOfWeek())
                          .month(schedule.getMonth())
                          .year(schedule.getYear());
  
      }
docs: Make a copy of a javax.ejb.ScheduleExpression portion of the object.
  
  We do not want to assume anything about how the methods are implemented
  in the ScheduleExpression, which can be extended by user code. This
  method is used in formatting a ScheduleExpression for the findEJBTimers
  command, so it must be in a common, expected format.
  
  @param schedule the object to be copied
  @return a copy of the object