You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/08/22 19:03:41 UTC

svn commit: r433692 - /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java

Author: elecharny
Date: Tue Aug 22 10:03:40 2006
New Revision: 433692

URL: http://svn.apache.org/viewvc?rev=433692&view=rev
Log:
Created a Response when we have an exception while parsing a DN

Modified:
    directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java

Modified: directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java
URL: http://svn.apache.org/viewvc/directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java?rev=433692&r1=433691&r2=433692&view=diff
==============================================================================
--- directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java (original)
+++ directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequestGrammar.java Tue Aug 22 10:03:40 2006
@@ -29,13 +29,17 @@
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapMessage;
 import org.apache.directory.shared.ldap.codec.LdapMessageContainer;
+import org.apache.directory.shared.ldap.codec.LdapResult;
 import org.apache.directory.shared.ldap.codec.LdapStatesEnum;
+import org.apache.directory.shared.ldap.codec.ResponseCarryingException;
+import org.apache.directory.shared.ldap.codec.util.LdapResultEnum;
+import org.apache.directory.shared.ldap.codec.util.LdapString;
+import org.apache.directory.shared.ldap.codec.util.LdapStringEncodingException;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 /**
  * This class implements the DelRequest LDAP message. All the actions are
  * declared in this class. As it is a singleton, these declaration are only done
@@ -118,7 +122,34 @@
                             String msg = "The DN to delete  (" + StringTools.dumpBytes( tlv.getValue().getData() )
                                 + ") is invalid";
                             log.error( "{} : {}", msg, ine.getMessage() );
-                            throw new DecoderException( msg, ine );
+                            
+                            LdapResult ldapResult = new LdapResult();
+                            
+                            try 
+                            {
+                                ldapResult.setErrorMessage( new LdapString( StringTools.getBytesUtf8( msg ) ) );
+                            }
+                            catch ( LdapStringEncodingException uee )
+                            {
+                                ldapResult.setErrorMessage( LdapString.EMPTY_STRING );
+                            }
+                            
+                            ldapResult.setResultCode( LdapResultEnum.INVALID_DN_SYNTAX );
+                            ldapResult.setMatchedDN( LdapDN.EMPTY_LDAPDN );
+                            
+                            DelResponse delResponse = new DelResponse();
+                            delResponse.setMessageId( delRequest.getMessageId() );
+                            delResponse.setLdapResult( ldapResult );
+                            
+                            LdapMessage response = new LdapMessage();
+                            response.setMessageId( delRequest.getMessageId() );
+                            response.setProtocolOP( delResponse );
+                            
+                            ResponseCarryingException exception = new ResponseCarryingException( msg, ine );
+                            
+                            exception.setResponse( response );
+                            
+                            throw exception;
                         }
                         delRequest.setEntry( entry );
                     }