{
LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
Message msg = isPre ?
ERR_LAUNCHING_PRE_EXTERNAL_INITIALIZATION.get():
ERR_LAUNCHING_POST_EXTERNAL_INITIALIZATION.get();
ReplicationCliReturnCode code = isPre?
ERROR_LAUNCHING_PRE_EXTERNAL_INITIALIZATION:
ERROR_LAUNCHING_POST_EXTERNAL_INITIALIZATION;
throw new ReplicationCliException(
getThrowableMsg(msg, ne), code, ne);
}
i++;
}
// Wait until it is over
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(
SearchControls. OBJECT_SCOPE);
String filter = "objectclass=*";
searchControls.setReturningAttributes(
new String[] {
"ds-task-log-message",
"ds-task-state"
});
String lastLogMsg = null;
while (!isOver)
{
try
{
Thread.sleep(500);
}
catch (Throwable t)
{
}
try
{
NamingEnumeration<SearchResult> res =
ctx.search(dn, filter, searchControls);
SearchResult sr = null;
try
{
while (res.hasMore())
{
sr = res.next();
}
}
finally
{
res.close();
}
String logMsg = getFirstValue(sr, "ds-task-log-message");
if (logMsg != null)
{
if (!logMsg.equals(lastLogMsg))
{
LOG.log(Level.INFO, logMsg);
lastLogMsg = logMsg;
}
}
InstallerHelper helper = new InstallerHelper();
String state = getFirstValue(sr, "ds-task-state");
if (helper.isDone(state) || helper.isStoppedByError(state))
{
isOver = true;
Message errorMsg;
String server = ConnectionUtils.getHostPort(ctx);
if (lastLogMsg == null)
{
errorMsg = isPre ?
INFO_ERROR_DURING_PRE_EXTERNAL_INITIALIZATION_NO_LOG.get(
state, server) :
INFO_ERROR_DURING_POST_EXTERNAL_INITIALIZATION_NO_LOG.get(
state, server);
}
else
{
errorMsg = isPre ?
INFO_ERROR_DURING_PRE_EXTERNAL_INITIALIZATION_LOG.get(
lastLogMsg, state, server) :
INFO_ERROR_DURING_POST_EXTERNAL_INITIALIZATION_LOG.get(
lastLogMsg, state, server);
}
if (helper.isCompletedWithErrors(state))
{
LOG.log(Level.WARNING, "Completed with error: "+errorMsg);
println(errorMsg);
}
else if (!helper.isSuccessful(state) ||
helper.isStoppedByError(state))
{
LOG.log(Level.WARNING, "Error: "+errorMsg);
ReplicationCliReturnCode code = isPre?
ERROR_LAUNCHING_PRE_EXTERNAL_INITIALIZATION:
ERROR_LAUNCHING_POST_EXTERNAL_INITIALIZATION;
throw new ReplicationCliException(errorMsg, code, null);
}
}