try
{
decoder.decode( buffer, container );
PwdModifyResponse pwdModifyResponse = container.getPwdModifyResponse();
// Now, update the created response with what we got from the extendedResponse
pwdModifyResponse.getLdapResult().setResultCode( response.getLdapResult().getResultCode() );
pwdModifyResponse.getLdapResult().setDiagnosticMessage( response.getLdapResult().getDiagnosticMessage() );
pwdModifyResponse.getLdapResult().setMatchedDn( response.getLdapResult().getMatchedDn() );
pwdModifyResponse.getLdapResult().setReferral( response.getLdapResult().getReferral() );
return new PasswordModifyResponseDecorator( codec, pwdModifyResponse );
}
catch ( DecoderException de )
{
StringWriter sw = new StringWriter();
de.printStackTrace( new PrintWriter( sw ) );
String stackTrace = sw.toString();
// Error while decoding the value.
PwdModifyResponse pwdModifyResponse = new PwdModifyResponseImpl(
decoratedResponse.getMessageId(),
ResultCodeEnum.OPERATIONS_ERROR,
stackTrace );
return new PasswordModifyResponseDecorator( codec, pwdModifyResponse );