Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 94055 invoked from network); 22 Sep 2005 22:57:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 22 Sep 2005 22:57:12 -0000 Received: (qmail 37091 invoked by uid 500); 22 Sep 2005 22:57:11 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 37067 invoked by uid 500); 22 Sep 2005 22:57:11 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 37054 invoked by uid 99); 22 Sep 2005 22:57:11 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Sep 2005 15:57:11 -0700 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 22 Sep 2005 15:57:19 -0700 Received: (qmail 94016 invoked by uid 65534); 22 Sep 2005 22:56:50 -0000 Message-ID: <20050922225650.94015.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r291029 - /directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java Date: Thu, 22 Sep 2005 22:56:50 -0000 To: commits@directory.apache.org From: akarasulu@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: akarasulu Date: Thu Sep 22 15:56:47 2005 New Revision: 291029 URL: http://svn.apache.org/viewcvs?rev=291029&view=rev Log: fixed bug where we were getting a class cast exception when performing compare operations Modified: directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java Modified: directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java?rev=291029&r1=291028&r2=291029&view=diff ============================================================================== --- directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java (original) +++ directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/CompareHandler.java Thu Sep 22 15:56:47 2005 @@ -18,6 +18,7 @@ import javax.naming.NamingException; +import javax.naming.ldap.LdapContext; import org.apache.ldap.common.exception.LdapException; import org.apache.ldap.common.message.CompareRequest; @@ -52,9 +53,10 @@ try { - ServerLdapContext ctx = ( ServerLdapContext ) SessionRegistry.getSingleton().getLdapContext( session, null, true ); + LdapContext ctx = SessionRegistry.getSingleton().getLdapContext( session, null, true ); + ServerLdapContext newCtx = ( ServerLdapContext ) ctx.lookup( "" ); LdapName name = new LdapName( req.getName() ); - if ( ctx.compare( name, req.getAttributeId(), req.getAssertionValue() ) ) + if ( newCtx.compare( name, req.getAttributeId(), req.getAssertionValue() ) ) { resp.getLdapResult().setResultCode( ResultCodeEnum.COMPARETRUE ); } @@ -63,7 +65,7 @@ resp.getLdapResult().setResultCode( ResultCodeEnum.COMPAREFALSE ); } } - catch ( NamingException e ) + catch ( Exception e ) { String msg = "failed to compare entry " + req.getName(); @@ -85,9 +87,12 @@ resp.getLdapResult().setResultCode( code ); resp.getLdapResult().setErrorMessage( msg ); - if ( e.getResolvedName() != null ) + if ( e instanceof NamingException ) { - resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() ); + if ( ( ( NamingException ) e ).getResolvedName() != null ) + { + resp.getLdapResult().setMatchedDn( ( ( NamingException ) e ).getResolvedName().toString() ); + } } session.write( resp );