Issue Details (XML | Word | Printable)

Key: DIRSERVER-711
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Emmanuel Lecharny
Reporter: Emmanuel Lecharny
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Directory ApacheDS

Propagate the errors to the client if we get a DecoderException (was DIRSERVER-634)

Created: 22/Aug/06 11:41 PM   Updated: 30/Aug/06 02:59 PM
Return to search
Component/s: None
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Duplicate

Resolution Date: 30/Aug/06 02:59 PM


 Description  « Hide
In codec grammars, when we have a decoderException, we should generate the correct LdapMessage response so the client can get the correct error instead of a protocol error.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Emmanuel Lecharny added a comment - 26/Aug/06 10:50 AM
All the DN exception have been trapped. Now we need to do the same thing for other exceptions.

Emmanuel Lecharny added a comment - 26/Aug/06 10:51 AM
And we need to add test coverage for those exceptions !!!

Emmanuel Lecharny added a comment - 28/Aug/06 01:22 PM
11 out of 79 cases are already fixed, and tested. This is only 14% :(

But it will go faster as at least 20 of all the exceptions are PROTOCOL_ERRORS, for which nothig has to be done.

Emmanuel Lecharny added a comment - 28/Aug/06 05:24 PM
25/79 ... 32%...

It's *boring* !!! But there is a progression !

Emmanuel Lecharny added a comment - 28/Aug/06 11:04 PM
31/56 : 45%

We have more PROTOCOL_ERROR (the default) than I thought, and we don't really care about PSearches, SubEntry, EntryChange and Gracefull/Shutdown

Emmanuel Lecharny added a comment - 29/Aug/06 11:52 PM
57% done. This is 38/66 (reevaluation of the number of case is being done).

Here is the status for current done cases :

UnbindRequest (1) :
-------------------
125 : PROTOCOL_ERROR : DONE : Tested

LdapControl (4) :
-----------------
186 : PROTOCOL_ERROR : DONE : Tested
195 : PROTOCOL_ERROR : DONE : Tested
214 : PROTOCOL_ERROR : DONE : Tested
275 : PROTOCOL_ERROR : DONE : Tested

LdapMessage (3) :
-----------------
103 : PROTOCOL_ERROR : DONE : Tested
148 : PROTOCOL_ERROR : DONE : Tested
170 : PROTOCOL_ERROR : DONE : Tested


AbandonRequest (2) :
--------------------
118 : Null messageId : PROTOCOL_ERROR : DONE : Tested
149 : Bad messageId : PROTOCOL_ERROR : DONE : Tested

AddRequest (5) :
----------------
117 : Empty addRequest : PROTOCOL_ERROR : DONE : Tested
160 : The entry is null : NAMING_VIOLATION : DONE : Tested
179 : Invalid entry : INVALID_DN_SYNTAX : DONE : Tested
270 : Empty attribute : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
284 : Invalid attribute : NAMING_EXCEPTION : DONE : not testable

BindRequest (5) :
-----------------
135 : Empty request : PROTOCOL_ERROR : DONE : Tested
183 : Invalid Ldap version : PROTOCOL_ERROR : DONE : Tested
236 : Bad DN : INVALID_DN_SYNTAX : DONE : Tested
364 : Empty SASL : INVALID_CREDENTIALS : DONE : Tested
437 : Bad mechanism : INAPPROPRIATE_AUTHENTICATION : DONE : not testable

CompareRequest (4) :
--------------------
145 : Empty entry : PROTOCOL_ERROR : DONE : Tested
163 : Bad entry : INVALID_DN_SYNTAX : DONE : Tested
228 : Empty attributeDesc : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
241 : Bad attributeDesc : NAMING_VIOLATION : DONE : not testable

DelRequest (2) :
----------------
114 : Empty DN : PROTOCOL_ERROR : DONE : Tested
132 : Bad DN : INVALID_DN_SYNTAX : DONE : Tested

ExtendedRequest (2) :
---------------------
135 : Empty request name : PROTOCOL_ERROR : DONE : Tested
158 : Invalid OID : PROTOCOL_ERROR : DONE : Tested

ModifyRequest (4) :
-------------------
163 : Bad object : INVALID_DN_SYNTAX : DONE : Tested
280 : Bad operation : PROTOCOL_ERROR : DONE : Tested
356 : Empty type : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
371 : Bad type : INVALID_ATTRIBUTE_SYNTAX : DONE : Not testable

ModifyDNRequest (6) :
---------------------
147 : Empty entry : PROTOCOL_ERROR : DONE : Tested
165 : Bad entry : INVALID_DN_SYNTAX : DONE : Tested
221 : Empty newRDN : PROTOCOL_ERROR : DONE : Tested : <---- Is this the correct error ? Or should we produce a INVALID_DN_SYNTAX
240 : Bad newRDN : INVALID_DN_SYNTAX : DONE : Tested
300 : Invalid oldRDN : PROTOCOL_ERROR : DONE : tested
389 : Invalid newSuperior : INVALID_DN_SYNTAX : DONE : Tested

Emmanuel Lecharny added a comment - 30/Aug/06 02:44 PM
DONE !!!!!!


Here is the list of generated errors :

UnbindRequest (1) :
-------------------
125 : PROTOCOL_ERROR : DONE : Tested

LdapControl (4) :
-----------------
186 : PROTOCOL_ERROR : DONE : Tested
195 : PROTOCOL_ERROR : DONE : Tested
214 : PROTOCOL_ERROR : DONE : Tested
275 : PROTOCOL_ERROR : DONE : Tested

LdapMessage (3) :
-----------------
103 : PROTOCOL_ERROR : DONE : Tested
148 : PROTOCOL_ERROR : DONE : Tested
170 : PROTOCOL_ERROR : DONE : Tested


AbandonRequest (2) :
--------------------
118 : Null messageId : PROTOCOL_ERROR : DONE : Tested
149 : Bad messageId : PROTOCOL_ERROR : DONE : Tested

AddRequest (5) :
----------------
117 : Empty addRequest : PROTOCOL_ERROR : DONE : Tested
160 : The entry is null : NAMING_VIOLATION : DONE : Tested
179 : Invalid entry : INVALID_DN_SYNTAX : DONE : Tested
270 : Empty attribute : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
284 : Invalid attribute : NAMING_EXCEPTION : DONE : not testable

BindRequest (5) :
-----------------
135 : Empty request : PROTOCOL_ERROR : DONE : Tested
183 : Invalid Ldap version : PROTOCOL_ERROR : DONE : Tested
236 : Bad DN : INVALID_DN_SYNTAX : DONE : Tested
364 : Empty SASL : INVALID_CREDENTIALS : DONE : Tested
437 : Bad mechanism : INAPPROPRIATE_AUTHENTICATION : DONE : not testable

CompareRequest (4) :
--------------------
145 : Empty entry : PROTOCOL_ERROR : DONE : Tested
163 : Bad entry : INVALID_DN_SYNTAX : DONE : Tested
228 : Empty attributeDesc : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
241 : Bad attributeDesc : NAMING_VIOLATION : DONE : not testable

DelRequest (2) :
----------------
114 : Empty DN : PROTOCOL_ERROR : DONE : Tested
132 : Bad DN : INVALID_DN_SYNTAX : DONE : Tested

ExtendedRequest (2) :
---------------------
135 : Empty request name : PROTOCOL_ERROR : DONE : Tested
158 : Invalid OID : PROTOCOL_ERROR : DONE : Tested

ModifyRequest (4) :
-------------------
163 : Bad object : INVALID_DN_SYNTAX : DONE : Tested
280 : Bad operation : PROTOCOL_ERROR : DONE : Tested
356 : Empty type : INVALID_ATTRIBUTE_SYNTAX : DONE : Tested
371 : Bad type : INVALID_ATTRIBUTE_SYNTAX : DONE : Not testable

ModifyDNRequest (6) :
---------------------
147 : Empty entry : PROTOCOL_ERROR : DONE : Tested
165 : Bad entry : INVALID_DN_SYNTAX : DONE : Tested
221 : Empty newRDN : PROTOCOL_ERROR : DONE : Tested : <---- Is this the correct error ? Or should we produce a INVALID_DN_SYNTAX
240 : Bad newRDN : INVALID_DN_SYNTAX : DONE : Tested
300 : Invalid oldRDN : PROTOCOL_ERROR : DONE : tested
389 : Invalid newSuperior : INVALID_DN_SYNTAX : DONE : Tested

SearchRequest ( 7 ) :
-------------------
166 : Bad DN : INVALID_DN_SYNTAX : DONE : Tested
222 : Bad scope : PROTOCOL_ERROR : DONE : Tested
295 : Bad derefAlias : PROTOCOL_ERROR : DONE : Tested
363 : Bad size limit : PROTOCOL_ERROR : DONE : Tested
416 : Bad time limit : PROTOCOL_ERROR : DONE : Tested
476 : Bad or empty types only : PROTOCOL_ERROR : DONE : Tested
691 : Bad attribute description : PROTOCOL_ERROR : DONE : Not testable

SubstringFilter (10) :
----------------------
109 : Empty Substring filter : PROTOCOL_ERROR : DONE : Tested
154 : Empty attributeDesc : PROTOCOL_ERROR : DONE : Tested
167 : Invalid attributeDesc : PROTOCOL_ERROR : DONE : Not testable
210 : Empty substring : PROTOCOL_ERROR : DONE : Tested
252 : Empty initial : PROTOCOL_ERROR : DONE : Tested
263 : Bad initial : PROTOCOL_ERROR : DONE : Not testable
327 : Empty any : PROTOCOL_ERROR : DONE : Tested
338 : Bad any : PROTOCOL_ERROR : DONE : Not testable
403 : Empty final : PROTOCOL_ERROR : DONE : Tested
414 : Bad final : PROTOCOL_ERROR : DONE : Not testable


MatchingRuleAssertion (5) :
---------------------------
145 : Empty matching rule : PROTOCOL_ERROR : DONE : Tested
161 : Bad matching rule : PROTOCOL_ERROR : DONE : Not testable
206 : Empty type : PROTOCOL_ERROR : DONE : Tested
223 : Bad type : PROTOCOL_ERROR : DONE : Not testable
325 : Bad DN Attributes : PROTOCOL_ERROR : Done : Tested

Filter (6) :
------------
250 : Empty And filter : PROTOCOL_ERROR : DONE : Tested
282 : Empty Or filter : PROTOCOL_ERROR : DONE : Tested
314 : Empty Not filter : PROTOCOL_ERROR : DONE : Tested
421 : Empty attributeDesc : PROTOCOL_ERROR : DONE : Tested
434 : Invalid attributeDesc : PROTOCOL_ERROR : DONE : Not testable
593 : Invalid present attributeDesc : PROTOCOL_ERROR : DONE : Not testable


Emmanuel Lecharny added a comment - 30/Aug/06 02:59 PM
All the 66 cases have been fixed and tested.