Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 10400 invoked from network); 7 Aug 2006 18:10:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 7 Aug 2006 18:10:31 -0000 Received: (qmail 97217 invoked by uid 500); 7 Aug 2006 18:10:28 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 97180 invoked by uid 500); 7 Aug 2006 18:10:28 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 97169 invoked by uid 99); 7 Aug 2006 18:10:28 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Aug 2006 11:10:28 -0700 X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=DNS_FROM_RFC_ABUSE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of gshimansky@gmail.com designates 64.233.182.186 as permitted sender) Received: from [64.233.182.186] (HELO nf-out-0910.google.com) (64.233.182.186) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Aug 2006 11:10:27 -0700 Received: by nf-out-0910.google.com with SMTP id a25so901017nfc for ; Mon, 07 Aug 2006 11:10:05 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:from:reply-to:to:subject:date:user-agent:references:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:message-id; b=qdwy4uAqW1PGRuVVHhJlWNRSXWZkMfeX6G/UMaMUH2floNXFrBwRjO7gY7aG1p+aMOIhOzdS7o2BV2B3kO1Ky3swoM0HYiFrrvG6KNGKxx3hvE8gT8oPmbEhWYZCqPyTi43EJTBYkjbkwP4Ti/8p+W2ECS/KA4RPYxdS6EEdot0= Received: by 10.48.242.19 with SMTP id p19mr1604428nfh; Mon, 07 Aug 2006 11:10:05 -0700 (PDT) Received: from ppp83-237-44-114.pppoe.mtu-net.ru ( [83.237.44.114]) by mx.gmail.com with ESMTP id x1sm6267087nfb.2006.08.07.11.10.03; Mon, 07 Aug 2006 11:10:05 -0700 (PDT) From: Gregory Shimansky Reply-To: harmony-dev@incubator.apache.org To: harmony-dev@incubator.apache.org Subject: Re: [drlvm] HARMONY-956 - problem w/ DRLVM classloader Date: Mon, 7 Aug 2006 22:10:05 +0400 User-Agent: KMail/1.9.1 References: <44D48DC3.6070206@pobox.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200608072210.05619.gshimansky@gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Monday 07 August 2006 21:22 Anton Luht wrote: > Hello, > > The problem is with verifier. > > The code in Verifier.cpp: > > if( ( start_pc >= len ) || ( end_pc >= len ) || ( handler_pc >= len > ) ) ... > > result = VER_ErrorHandler; > > I've modified error logging a bit to log values of start_pc, end_pc, > handler_pc and len and that's the output: > > > Loading message broker from: xbean:activemq.xml > vf_debug: VerifyError: (class: > edu/emory/mathcs/backport/java/util/concurrent/lo > cks/ReentrantLock$NonfairSync, method: lockInterruptibly()V, len: 103, > start_pc: 87, end_pc: 103, handler_pc: 21) Handler pc is out of range > vf_debug: verifying class > edu/emory/mathcs/backport/java/util/concurrent/locks/R eentrantLock (method > ()V) couldn't load class "edu/emory/mathcs/backport/j > ava/util/concurrent/locks/ReentrantLock$NonfairSync" > vf_debug: VerifyError: > edu/emory/mathcs/backport/java/util/concurrent/locks/Reen > trantLock$NonfairSync > Failed to execute main task. Reason: java.lang.NoClassDefFoundError: > edu/emory/m > athcs/backport/java/util/concurrent/locks/ReentrantLock$NonfairSync > > I'm not an expert in verification but seems like > > end_pc >= len > should be replaced with > end_pc > len I checked Java class file format spec [1] and it states in 4.7.3 that: -------------------------------------------------------- start_pc, end_pc The values of the two items start_pc and end_pc indicate the ranges in the code array at which the exception handler is active. The value of start_pc must be a valid index into the code array of the opcode of an instruction. The value of end_pc either must be a valid index into the code array of the opcode of an instruction or must be equal to code_length, the length of the code array. The value of start_pc must be less than the value of end_pc. The start_pc is inclusive and end_pc is exclusive; that is, the exception handler must be active while the program counter is within the interval [start_pc, end_pc). -------------------------------------------------------- In this case the code length is 103 and end_pc is 103. It looks to be a legal exception handler entry so I agree with your correction to verifier code. -- Gregory Shimansky, Intel Middleware Products Division --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org For additional commands, e-mail: harmony-dev-help@incubator.apache.org