code: static void parse(ParsedScheduleExpression parsedExpr) // d639610
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "parse: " + toString(parsedExpr.getSchedule()));
  
          ScheduleExpression expr = parsedExpr.getSchedule();
          ScheduleExpressionParser parser = new ScheduleExpressionParser();
  
          try
          {
              parser.parseTimeZone(parsedExpr, expr.getTimezone());
  
              parser.parseAttribute(parsedExpr, Attribute.SECOND, expr.getSecond());
              parser.parseAttribute(parsedExpr, Attribute.MINUTE, expr.getMinute());
              parser.parseAttribute(parsedExpr, Attribute.HOUR, expr.getHour());
              parser.parseAttribute(parsedExpr, Attribute.DAY_OF_MONTH, expr.getDayOfMonth());
              parser.parseAttribute(parsedExpr, Attribute.MONTH, expr.getMonth());
              parser.parseAttribute(parsedExpr, Attribute.DAY_OF_WEEK, expr.getDayOfWeek());
              parser.parseAttribute(parsedExpr, Attribute.YEAR, expr.getYear());
          } catch (IllegalArgumentException ex)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.exit(tc, "parse", ex);
              throw ex;
          }
  
          parsedExpr.start = parser.parseDate(expr.getStart(), 0); // d666295
          parsedExpr.end = parser.parseDate(expr.getEnd(), Long.MAX_VALUE); // d666295
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "parse", parsedExpr);
      }
docs: Parses the schedule expression contained within the
  ParsedScheduleExpression object and store the results in that object.
  
  @param parsedExpr the parsed schedule expression to populate
  @throws ScheduleExpressionParserException if the expression contains an
  invalid attribute value