From 3cdb7a881523ba1c3d148cc118c9889830f699cd Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 31 Oct 2016 14:00:38 +0000
Subject: [PATCH] OPENDJ-2772 Improve sdk ldapmodify
---
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java | 39 +++++++++++++++++++++++----------------
1 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java
index ec6d630..cf9bfce 100644
--- a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java
+++ b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java
@@ -20,7 +20,6 @@
import static com.forgerock.opendj.cli.CliMessages.INFO_FILE_PLACEHOLDER;
import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolException;
-import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolParamException;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.cli.Utils.filterExitCode;
import static com.forgerock.opendj.ldap.tools.Utils.getConnection;
@@ -362,29 +361,37 @@
noop,
this)) {
reader = createLDIFChangeRecordReader(filename, argParser.getTrailingArguments());
-
- final VisitorImpl visitor = new VisitorImpl(connection);
try (final EntryWriter w = writer) {
- try {
- while (reader.hasNext()) {
- final ChangeRecord cr = reader.readChangeRecord();
- final int result = cr.accept(visitor, null);
- if (result != 0 && !continueOnError.isPresent()) {
- return result;
- }
- }
- } catch (final IOException ioe) {
- throw newToolParamException(
- ioe, ERR_LDIF_FILE_READ_ERROR.get(filename.getValue(), ioe.getLocalizedMessage()));
- }
+ return processModify(connection, reader, continueOnError.isPresent());
} catch (final IOException e) {
throw newToolException(e, ResultCode.UNDEFINED, ERR_LDAP_MODIFY_WRITTING_ENTRIES.get(e.getMessage()));
}
} finally {
closeSilently(reader);
}
+ }
- return ResultCode.SUCCESS.intValue();
+ private int processModify(final Connection connection,
+ final ChangeRecordReader reader,
+ final boolean continueOnError) {
+ final VisitorImpl visitor = new VisitorImpl(connection);
+ while (true) {
+ try {
+ if (!reader.hasNext()) {
+ return ResultCode.SUCCESS.intValue();
+ }
+ final ChangeRecord cr = reader.readChangeRecord();
+ final int result = cr.accept(visitor, null);
+ if (result != 0 && !continueOnError) {
+ return result;
+ }
+ } catch (final IOException ioe) {
+ errPrintln(ERR_LDIF_FILE_READ_ERROR.get(ioe.getLocalizedMessage()));
+ if (!continueOnError) {
+ return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ }
+ }
+ }
}
private ChangeRecordReader createLDIFChangeRecordReader(final StringArgument fileNameArg,
--
Gitblit v1.10.0