mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

dugan
02.21.2009 5f940cf887e85e1595805d4a4d59b8ae5b0f585a
Issue 3251: LDIFReader rejectLastEntry prints wrong entry
2 files modified
38 ■■■■■ changed files
opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java 4 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/util/LDIFReader.java 34 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java
@@ -424,7 +424,7 @@
        dn2id.remove(null, entryDN);
        Message msg =
                ERR_JEB_IMPORT_PARENT_NOT_FOUND.get(parentDN.toString());
        context.getLDIFReader().rejectLastEntry(msg);
        context.getLDIFReader().rejectEntry(entry, msg);
        return false;
      }
    }
@@ -503,7 +503,7 @@
        element.setExistingEntry(existingEntry);
      } else {
        Message msg = WARN_JEB_IMPORT_ENTRY_EXISTS.get();
        context.getLDIFReader().rejectLastEntry(msg);
        context.getLDIFReader().rejectEntry(entry, msg);
        entryID = null;
      }
    } else {
opends/src/server/org/opends/server/util/LDIFReader.java
@@ -1148,6 +1148,40 @@
    }
  }
  /**
   * Log the specified entry and messages in the reject writer. The method is
   * intended to be used in a threaded environment, where individual import
   * threads need to log an entry and message to the reject file.
   *
   * @param e The entry to log.
   * @param message The message to log.
   */
  public synchronized void rejectEntry(Entry e, Message message) {
    BufferedWriter rejectWriter = importConfig.getRejectWriter();
    entriesRejected++;
    if (rejectWriter != null) {
      try {
        if ((message != null) && (message.length() > 0)) {
          rejectWriter.write("# ");
          rejectWriter.write(message.toString());
          rejectWriter.newLine();
        }
        String dnStr = e.getDN().toString();
        rejectWriter.write(dnStr);
        rejectWriter.newLine();
        List<StringBuilder> eLDIF = e.toLDIF();
        for(StringBuilder l : eLDIF) {
          rejectWriter.write(l.toString());
          rejectWriter.newLine();
        }
        rejectWriter.newLine();
      } catch (IOException ex) {
        if (debugEnabled())
          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
      }
    }
  }
  /**