Return-Path: Delivered-To: apmail-commons-dev-archive@www.apache.org Received: (qmail 45684 invoked from network); 23 May 2008 18:18:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 May 2008 18:18:11 -0000 Received: (qmail 1779 invoked by uid 500); 23 May 2008 18:18:11 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 1678 invoked by uid 500); 23 May 2008 18:18:11 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 1667 invoked by uid 99); 23 May 2008 18:18:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 May 2008 11:18:11 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of sebbaz@gmail.com designates 216.239.58.185 as permitted sender) Received: from [216.239.58.185] (HELO gv-out-0910.google.com) (216.239.58.185) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 May 2008 18:17:21 +0000 Received: by gv-out-0910.google.com with SMTP id n40so421481gve.26 for ; Fri, 23 May 2008 11:17:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=Vj2ILTmRbbYnmS9IFDoFL/50cG0XaeKg4GJOmgzJJHw=; b=uIECY2yZVOAc51JgPaxil8efsYmZ/WAkDgHVr6QF09ZC64Lg4ND720H9kEyBTOX2Om0TEPDKoJkN6mxWI6Re+DoJyuk6bEKKEDH3JsuZwaRvsPhh3hbdF4H5ok8R2fnGGVT2Rw91iP8NCAWk7pO5XIm7a7W3ffiuiukuI569ni8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=a1cV4Ez6/PvUnhs2lHna7muXFrgK6Du0R7B7VypdcrsnHJmxig+K2TDGzF+La2We8yMrte8zbI1YCkhatNAEGdk12jbJFeX5ofqhc7dXcBz1zL+bH7ldUEt5rQtVcATGEMVdjpZEhmm11T8fvLzIEIWbMcTZ9y3ii9x+NuHK+mQ= Received: by 10.150.197.9 with SMTP id u9mr232080ybf.83.1211566655656; Fri, 23 May 2008 11:17:35 -0700 (PDT) Received: by 10.150.91.10 with HTTP; Fri, 23 May 2008 11:17:35 -0700 (PDT) Message-ID: <25aac9fc0805231117y7000fe54t4499c5f6165e0141@mail.gmail.com> Date: Fri, 23 May 2008 19:17:35 +0100 From: sebb To: "Commons Developers List" Subject: Re: [VOTE] Release Commons Chain 1.2 based on RC2 In-Reply-To: <55afdc850805231015i697f895ek31bcebc0844a4f7b@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <55afdc850805211947s3aa397d3pc7c082b60c7a3171@mail.gmail.com> <4835C30C.6040702@oliver-heger.de> <4835D8FB.7020701@free.fr> <55afdc850805221910t57aaef4fjb66965ded4617698@mail.gmail.com> <4836D532.3040207@free.fr> <55afdc850805230832q4a6d7e94p21b7e7dd69cab48d@mail.gmail.com> <25aac9fc0805230851q73b4d4a5td0e2fdab62e264fe@mail.gmail.com> <55afdc850805231015i697f895ek31bcebc0844a4f7b@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org On 23/05/2008, Niall Pemberton wrote: > On Fri, May 23, 2008 at 4:51 PM, sebb wrote: > > On 23/05/2008, Niall Pemberton wrote: > >> On Fri, May 23, 2008 at 3:31 PM, Luc Maisonobe wrote: > >> > Niall Pemberton a =E9crit : > >> >> On Thu, May 22, 2008 at 9:35 PM, Luc Maisonobe wrote: > >> >>> A few comments on this release. > >> >>> > >> >>> Typo in the project description in the pom.xml file: replace > >> >>> "implmentation" with "implementation". > >> >>> > >> >>> Extracting files from the commons-chain-1.2-src.tar.gz archive i= n a > >> >>> Linux box leads to an all lower case file name for "license-head= er.txt", > >> >>> which leads to an error when running "mvn site". Some plugin req= uires a > >> >>> mixed case LICENSE-header.txt. > >> >> > >> >> Thanks, I fixed the typo and checkstyle config in the trunk: > >> >> http://svn.apache.org/viewvc?view=3Drev&revision=3D659361 > >> >> > >> >> Anyone think we need a new RC for this? > >> > > >> > No, it is really minor. > >> > > >> >> > >> >>> There are 39 findbugs errors. They don't seem too important. Man= y are > >> >>> serialization related (missing serialVersionUID, transient field= s) and > >> >>> many are style related (redeclaration of interfaces from supercl= ass). I > >> >>> think the errors in ContextBase and web.ChainListener are false > >> >>> positive. The MTIA_SUSPECT_SERVLET_INSTANCE_FIELD may be more > >> >>> problematic, I know nothing about servlets so cannot judge this.= I'm > >> >>> attaching the findbug.html report file to this message. > >> >> > >> >> I don't see it attached - also I added findbugs to the pom and ra= n it > >> >> and didn't see such an error > >> >> http://svn.apache.org/viewvc?view=3Drev&revision=3D659363 > >> > > >> > Ooops. I forgot to join the page. Here it is. It was generated by > >> > version 1.1.1 of the findbugs plugin, and the class files were com= piled > >> > with SunJDK 1.6 on a linux box. > >> > >> > >> Maybe its getting removed by the mailing list, because I still don't > >> see it. I tried changing the version to 1.1.1 of findbugs and used J= DK > >> 1.6 - but I still don't see it. AnywayI looked up that error here: > >> > >> http://findbugs.sourceforge.net/bugDescriptions.html#MTIA_SUSPECT_SE= RVLET_INSTANCE_FIELD > >> > >> ...so I guess it must be referring to these fields: > >> http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/org/apache/= commons/chain/web/servlet/ChainProcessor.html#94 > >> > >> In thoses cases then this warning is not an issue - since its fine f= or > >> all threads to use the same instance variables - three are just the > >> names of attributes configured for the servlet. CatalogFactory is a > >> singleton-per-ClassLoader and one instance should be shared by all > >> threads for the servlet instance. Looking at the code I believe it > >> "caches" the factory in the servlet to avoid the *synchronized* look= up > >> in CatalogFactory.getInstance(): > >> > > > > If the same instance is used by multiple threads, then any instance > > variables need to be either final, volatile or synchronized. > > > I don't think so in this case. These are *private* variables that are > set up by the Servlet when it is intialized[1] and removed when it > shut down[2] - these are the only times they're changed and are not > accesible by multiple threads. Once the servlet is intialialized then > they are *read* by multiple threads[3] as each request is processed. > So this is the case of *set-once* in a *thread-safe* manner and then > unchangable. > The JVM does not guarantee that values written to an instance variable in one thread will be visible to another thread unless the variables are final, volatile or protected by synch. using the *same* lock in both threads. Both the writer *and reader* must synch. on the same lock. I know it seems strange and counter-intuitive, but the Java memory model allows threads to cache variables in registers and use various other techniques for performance reasons. Without synchronization, all one can say is that the values seen by the reader thread will be either the default value or the value written by the writer thread. Though even that may not be true: if there are two writer threads updating a long or double value without synch. it is possible that a different thread will see a value made up of 32 bits set by one thread and 32 bits by another. This cannot happen here because there is only one thread writing the variables. For the details, I can thoroughly recommend Java Concurrency in Practice. Also: http://today.java.net/pub/a/today/2004/04/13/JSR133.html > Niall > > [1] http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/org/apache/= commons/chain/web/servlet/ChainProcessor.html#145 > [2] http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/org/apache/= commons/chain/web/servlet/ChainProcessor.html#131 > [3] http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/org/apache/= commons/chain/web/servlet/ChainProcessor.html#175 > > > > Without one of these, there is no guarantee of memory visibility - > > thread A can set the value of "catalog" and thread B may never see > > it. > > > >> http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/org/apache/= commons/chain/CatalogFactory.html#178 > >> > >> So if I'm looking at the right place then I don't believe this is an > >> issue - if I'm not looking in the right place then please point me t= o > >> the line number(s) your findbugs report is showing in the rc2 xref: > >> http://people.apache.org/~niallp/chain_1_2_RC2/site/xref/index.html > >> > >> Thanks > >> > >> > >> Niall > >> > >> > >> > Luc > >> >> > >> >> Niall > >> >> > >> >>> I don't cast any vote now, waiting for more knowledgeable people= to look > >> >>> at these servlet issues. > >> >>> > >> >>> Luc > >> >>> > >> >>> Oliver Heger wrote: > >> >>>> +1 > >> >>>> > >> >>>> Oliver > >> >>>> > >> >>>> Niall Pemberton wrote: > >> >>>>> The main changes since RC1 are that the ant build now works on= JDK 1.3 > >> >>>>> and the Logging dependency has been upgraded to the latest 1.1= .1 > >> >>>>> > >> >>>>> The artifacts are here: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/ > >> >>>>> > >> >>>>> SVN Tag: > >> >>>>> http://svn.apache.org/viewvc/commons/proper/chain/tags/CHAIN_1= _2_RC2/ > >> >>>>> > >> >>>>> Site: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/site/ > >> >>>>> (note m2 generates relative links, so some don't work - but th= e site > >> >>>>> is for info and not included in the release artifacts) > >> >>>>> > >> >>>>> Release Notes: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/RELEASE-NOTES.t= xt > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/site/changes-re= port.html > >> >>>>> > >> >>>>> RAT Report: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/site/rat-report= .html > >> >>>>> > >> >>>>> CLIRR Report: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/site/clirr-repo= rt.html > >> >>>>> > >> >>>>> RC2 has been built with m2 - but m1 and ant builds are availab= le - details here: > >> >>>>> http://people.apache.org/~niallp/chain_1_2_RC2/site/building.h= tml > >> >>>>> > >> >>>>> Note: Chain is targetted at JDK 1.3, but I built with JDK 1.5 = because > >> >>>>> of the issue with m2 and JDK 1.4 - but I have tested on JDK 1.= 3 and > >> >>>>> JDK 1.4 using m1 & ant and JDK 1.5 and JDK 1.6 using m2 > >> >>>>> > >> >>>>> Vote is open for 72 hours > >> >>>>> > >> >>>>> Thanks in advance for your feedback/votes. > >> >>>>> > >> >>>>> Niall > >> >>>>> --------------------------------------------------------------= -----------------------------------------------> > >> >>>>> > >> >>>>> [ ] +1 I support this release > >> >>>>> [ ] +0 I am OK with this release > >> >>>>> [ ] -0 OK, but.... > >> >>>>> [ ] -1 I do not support this release > >> >>>>> > >> >>>>> --------------------------------------------------------------= ------- > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org