private static int finalizeConverter()

in src/main/java/org/apache/log4j/pattern/ExtrasPatternParser.java [547:598]


  private static int finalizeConverter(
    char c, String pattern, int i,
    final StringBuffer currentLiteral, final ExtrasFormattingInfo formattingInfo,
    final Map converterRegistry, final Map rules, final List patternConverters,
    final List formattingInfos) {
    StringBuffer convBuf = new StringBuffer();
    i = extractConverter(c, pattern, i, convBuf, currentLiteral);

    String converterId = convBuf.toString();

    List options = new ArrayList();
    i = extractOptions(pattern, i, options);

    PatternConverter pc =
      createConverter(
        converterId, currentLiteral, converterRegistry, rules, options);

    if (pc == null) {
      StringBuffer msg;

      if (converterId.length() == 0) {
        msg =
          new StringBuffer("Empty conversion specifier starting at position ");
      } else {
        msg = new StringBuffer("Unrecognized conversion specifier [");
        msg.append(converterId);
        msg.append("] starting at position ");
      }

      msg.append(Integer.toString(i));
      msg.append(" in conversion pattern.");

        LogLog.error(msg.toString());

      patternConverters.add(
        new LiteralPatternConverter(currentLiteral.toString()));
      formattingInfos.add(ExtrasFormattingInfo.getDefault());
    } else {
      patternConverters.add(pc);
      formattingInfos.add(formattingInfo);

      if (currentLiteral.length() > 0) {
        patternConverters.add(
          new LiteralPatternConverter(currentLiteral.toString()));
        formattingInfos.add(ExtrasFormattingInfo.getDefault());
      }
    }

    currentLiteral.setLength(0);

    return i;
  }