Return-Path: Delivered-To: apmail-incubator-directory-dev-archive@www.apache.org Received: (qmail 57961 invoked from network); 1 Feb 2005 01:18:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 1 Feb 2005 01:18:56 -0000 Received: (qmail 2267 invoked by uid 500); 1 Feb 2005 01:18:55 -0000 Delivered-To: apmail-incubator-directory-dev-archive@incubator.apache.org Received: (qmail 2215 invoked by uid 500); 1 Feb 2005 01:18:55 -0000 Mailing-List: contact directory-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list directory-dev@incubator.apache.org Received: (qmail 2202 invoked by uid 99); 1 Feb 2005 01:18:55 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from ajax-1.apache.org (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 31 Jan 2005 17:18:54 -0800 Received: from ajax.apache.org (ajax.apache.org [127.0.0.1]) by ajax.apache.org (8.12.11/8.12.11) with ESMTP id j1115IFB019904 for ; Tue, 1 Feb 2005 02:05:18 +0100 Message-ID: <418753975.1107219918078.JavaMail.jira@ajax.apache.org> Date: Tue, 1 Feb 2005 02:05:18 +0100 (CET) From: "Alex Karasulu (JIRA)" To: directory-dev@incubator.apache.org Subject: [jira] Commented: (DIRLDAP-30) Digester throw an EmptyStackException even if result is OK In-Reply-To: <1166119991.1107215957936.JavaMail.jira@ajax.apache.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/DIRLDAP-30?page=comments#action_58349 ] Alex Karasulu commented on DIRLDAP-30: -------------------------------------- Yep this is a bug for sure. I'd have to dig deep to figure out where the TLV accounting is messing up. But I'm sure its a stupid little mistake on my part. Again I could solve this but I have the feeling we could rewrite this faster. I'm still considering it. -Alex > Digester throw an EmptyStackException even if result is OK > ---------------------------------------------------------- > > Key: DIRLDAP-30 > URL: http://issues.apache.org/jira/browse/DIRLDAP-30 > Project: Directory LDAP > Type: Bug > Components: Snickers Codec Provider > Environment: Not relevant > Reporter: Emmanuel Lecharny > Assignee: Alex Karasulu > Priority: Blocker > > Binding to the Ldap database (OpenLdap), I get a correct answer : > 30 0c --> Bind Result, 12 bytes long > 02 01 01 --> Message ID = 1 > 61 07 --> Bind Result, length = 7 > 0a 01 00 --> Result code = Success > 04 00 --> no matched DN > 04 00 --> no error message > But I got a full pack of stack trace from Digester. It seems that if the stack is empty, it does not work. Does Digester able to handle zero length value TLV ? (here, the last two TLV are TL = {04 00} and TL = {04 00}, as they have L=0, so V does not exist). > Here is the trace and the stack. > (Man, digester is a maze !) > 0 [main] DEBUG org.apache.ldap.common.berlib.asn1.SnickersDecoder - Read 14 bytes : > 2 [main] DEBUG org.apache.ldap.common.berlib.asn1.SnickersDecoder - [30 0c 02 01 01 61 07 0a 01 00 04 00 04 00] > 3 [main] DEBUG BERDigester - Rule org.apache.asn1.ber.digester.rules.PrimitiveIntDecodeRule@10f11b8 fired successfully by digester org.apache.asn1.ber.digester.BERDigester@544ec1 > 33 [main] DEBUG BERDigester - Rule org.apache.ldap.common.berlib.asn1.decoder.ResultMatchedDNRule@cfec48 fired successfully by digester org.apache.asn1.ber.digester.BERDigester@544ec1 > 34 [main] DEBUG BERDigester - Rule org.apache.ldap.common.berlib.asn1.decoder.ErrorMessageRule@a17083 fired successfully by digester org.apache.asn1.ber.digester.BERDigester@544ec1 > 34 [main] DEBUG BERDigester - Rule org.apache.ldap.common.berlib.asn1.decoder.ResultMatchedDNRule@cfec48 fired successfully by digester org.apache.asn1.ber.digester.BERDigester@544ec1 > 34 [main] DEBUG BERDigester - Rule org.apache.ldap.common.berlib.asn1.decoder.ErrorMessageRule@a17083 fired successfully by digester org.apache.asn1.ber.digester.BERDigester@544ec1 > 36 [main] ERROR BERDigester - Error while triggering rule > org.apache.ldap.common.berlib.asn1.decoder.bind.BindResponseRule@e1d5ea with digester > org.apache.asn1.ber.digester.BERDigester@544ec1: Rule.finish() threw exception > java.util.EmptyStackException > at org.apache.commons.collections.ArrayStack.peek(ArrayStack.java:89) > at org.apache.asn1.ber.digester.BERDigester.peek(BERDigester.java:279) > at org.apache.ldap.common.berlib.asn1.decoder.bind.BindResponseRule.finish(BindResponseRule.java:58) > at org.apache.asn1.ber.digester.BERDigester.fireFinishEvent(BERDigester.java:1132) > at org.apache.asn1.ber.digester.BERDigester$DigesterCallback.decodeOccurred(BERDigester.java:196) > at org.apache.asn1.ber.BERDecoder.fireDecodeOccurred(BERDecoder.java:355) > at org.apache.asn1.ber.BERDecoder.updateStack(BERDecoder.java:404) > at org.apache.asn1.ber.BERDecoder.decodeOccurred(BERDecoder.java:279) > at org.apache.asn1.codec.stateful.AbstractStatefulDecoder.decodeOccurred(AbstractStatefulDecoder.java:119) > at org.apache.asn1.ber.LengthDecoder.decode(LengthDecoder.java:53) > at org.apache.asn1.ber.BERDecoder.decode(BERDecoder.java:152) > at org.apache.asn1.ber.digester.BERDigester.decode(BERDigester.java:141) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.digest(SnickersDecoder.java:179) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.decode(SnickersDecoder.java:125) > at org.apache.ldap.common.message.MessageDecoder.decode(MessageDecoder.java:106) > at org.apache.ldap.clients.LdapBind.bind(LdapBind.java:342) > at org.apache.ldap.clients.LdapBind.main(LdapBind.java:401) > 36 [main] ERROR BERDigester - Error while triggering rule org.apache.ldap.common.berlib.asn1.decoder.bind.BindResponseRule@e1d5ea with digester org.apache.asn1.ber.digester.BERDigester@544ec1: Rule.finish() threw exception > java.util.EmptyStackException > at org.apache.commons.collections.ArrayStack.peek(ArrayStack.java:89) > at org.apache.asn1.ber.digester.BERDigester.peek(BERDigester.java:279) > at org.apache.ldap.common.berlib.asn1.decoder.bind.BindResponseRule.finish(BindResponseRule.java:58) > at org.apache.asn1.ber.digester.BERDigester.fireFinishEvent(BERDigester.java:1132) > at org.apache.asn1.ber.digester.BERDigester$DigesterCallback.decodeOccurred(BERDigester.java:196) > at org.apache.asn1.ber.BERDecoder.fireDecodeOccurred(BERDecoder.java:355) > at org.apache.asn1.ber.BERDecoder.updateStack(BERDecoder.java:404) > at org.apache.asn1.ber.BERDecoder.decodeOccurred(BERDecoder.java:279) > at org.apache.asn1.codec.stateful.AbstractStatefulDecoder.decodeOccurred(AbstractStatefulDecoder.java:119) > at org.apache.asn1.ber.LengthDecoder.decode(LengthDecoder.java:53) > at org.apache.asn1.ber.BERDecoder.decode(BERDecoder.java:152) > at org.apache.asn1.ber.digester.BERDigester.decode(BERDigester.java:141) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.digest(SnickersDecoder.java:179) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.decode(SnickersDecoder.java:125) > at org.apache.ldap.common.message.MessageDecoder.decode(MessageDecoder.java:106) > at org.apache.ldap.clients.LdapBind.bind(LdapBind.java:342) > at org.apache.ldap.clients.LdapBind.main(LdapBind.java:401) > Exception in thread "main" org.apache.ldap.common.message.spi.ProviderException: Snickers decoder failure! > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.digest(SnickersDecoder.java:183) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.decode(SnickersDecoder.java:125) > at org.apache.ldap.common.message.MessageDecoder.decode(MessageDecoder.java:106) > at org.apache.ldap.clients.LdapBind.bind(LdapBind.java:342) > at org.apache.ldap.clients.LdapBind.main(LdapBind.java:401) > Nested exceptions to follow: > java.util.EmptyStackException > at org.apache.commons.collections.ArrayStack.peek(ArrayStack.java:89) > at org.apache.asn1.ber.digester.BERDigester.peek(BERDigester.java:279) > at org.apache.ldap.common.berlib.asn1.decoder.bind.BindResponseRule.finish(BindResponseRule.java:58) > at org.apache.asn1.ber.digester.BERDigester.fireFinishEvent(BERDigester.java:1132) > at org.apache.asn1.ber.digester.BERDigester$DigesterCallback.decodeOccurred(BERDigester.java:196) > at org.apache.asn1.ber.BERDecoder.fireDecodeOccurred(BERDecoder.java:355) > at org.apache.asn1.ber.BERDecoder.updateStack(BERDecoder.java:404) > at org.apache.asn1.ber.BERDecoder.decodeOccurred(BERDecoder.java:279) > at org.apache.asn1.codec.stateful.AbstractStatefulDecoder.decodeOccurred(AbstractStatefulDecoder.java:119) > at org.apache.asn1.ber.LengthDecoder.decode(LengthDecoder.java:53) > at org.apache.asn1.ber.BERDecoder.decode(BERDecoder.java:152) > at org.apache.asn1.ber.digester.BERDigester.decode(BERDigester.java:141) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.digest(SnickersDecoder.java:179) > at org.apache.ldap.common.berlib.asn1.SnickersDecoder.decode(SnickersDecoder.java:125) > at org.apache.ldap.common.message.MessageDecoder.decode(MessageDecoder.java:106) > at org.apache.ldap.clients.LdapBind.bind(LdapBind.java:342) > at org.apache.ldap.clients.LdapBind.main(LdapBind.java:401) > <<========= Last Nested Exception ========>> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira