Exception cause = null;
/*
* Set the result code or guess the best option.
*/
ResultCodeEnum code;
if ( e instanceof CursorClosedException )
{
cause = ( Exception ) ( ( CursorClosedException ) e ).getCause();
if ( cause == null )
{
cause = e;
}
}
else
{
cause = e;
}
if ( cause instanceof LdapOperationException )
{
code = ( ( LdapOperationException ) cause ).getResultCode();
}
else
{
code = ResultCodeEnum.getBestEstimate( cause, req.getType() );
}
result.setResultCode( code );
/*
* Setup the error message to put into the request and put entire
* exception into the message if we are in debug mode. Note we
* embed the result code name into the message.
*/
String msg = code.toString() + ": failed for " + req + ": " + cause.getLocalizedMessage();
if ( IS_DEBUG )
{
LOG.debug( msg, cause );
msg += ":\n" + ExceptionUtils.getStackTrace( cause );