Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 60745 invoked from network); 30 May 2005 21:21:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 30 May 2005 21:21:27 -0000 Received: (qmail 19967 invoked by uid 500); 30 May 2005 21:21:26 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 19825 invoked by uid 500); 30 May 2005 21:21:25 -0000 Mailing-List: contact cvs-help@cocoon.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@cocoon.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 19811 invoked by uid 99); 30 May 2005 21:21:25 -0000 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 minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Mon, 30 May 2005 14:21:25 -0700 Received: (qmail 60655 invoked by uid 65534); 30 May 2005 21:21:24 -0000 Message-ID: <20050530212124.60654.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r179149 - /cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java /cocoon/branches/BRANCH_2_1_X/status.xml Date: Mon, 30 May 2005 21:21:23 -0000 To: cvs@cocoon.apache.org From: anathaniel@apache.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: anathaniel Date: Mon May 30 14:21:21 2005 New Revision: 179149 URL: http://svn.apache.org/viewcvs?rev=3D179149&view=3Drev Log: XSP Block: Double check and attempt again to load program object from cache. This avoids that simultaneous requests recompile the same XSP over and over= again. Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/comp= onents/language/generator/ProgramGeneratorImpl.java cocoon/branches/BRANCH_2_1_X/status.xml Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoo= n/components/language/generator/ProgramGeneratorImpl.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/= xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorIm= pl.java?rev=3D179149&r1=3D179148&r2=3D179149&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/comp= onents/language/generator/ProgramGeneratorImpl.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/comp= onents/language/generator/ProgramGeneratorImpl.java Mon May 30 14:21:21 2005 @@ -50,7 +50,7 @@ * @author Ricardo Rocha * @author Vadim Gritsenko * @author Torsten Curdt - * @version CVS $Id: ProgramGeneratorImpl.java,v 1.1 2004/03/10 12:58:04 s= tephan Exp $ + * @version CVS $Id$ */ public class ProgramGeneratorImpl extends AbstractLogEnabled implements ProgramGenerator, Contextualizable, Composable, Parameteriz= able, @@ -267,20 +267,30 @@ } =20 if (programInstance =3D=3D null) { - // no instance found - if (getLogger().isDebugEnabled()) { - getLogger().debug("Creating new serverpage for [" + id= + "]"); - } synchronized (this) { - generateSourcecode(source, - normalizedName, - markupLanguage, - programmingLanguage); - - programInstance =3D loadProgram(newManager, - normalizedName, - markupLanguage, - programmingLanguage); + // Attempt again to load program object from cache. + // This avoids that simultaneous requests recompile + // the same XSP over and over again. + try { + programInstance =3D (CompiledComponent) this.cache= .select(normalizedName); + if (getLogger().isDebugEnabled()) { + getLogger().debug("The serverpage [" + id + "]= was now in the cache"); + } + } catch (Exception e) { + // no instance found + if (getLogger().isDebugEnabled()) { + getLogger().debug("Creating new serverpage for= [" + id + "]"); + } + generateSourcecode(source, + normalizedName, + markupLanguage, + programmingLanguage); + + programInstance =3D loadProgram(newManager, + normalizedName, + markupLanguage, + programmingLanguage); + } } } else { // found an instance Modified: cocoon/branches/BRANCH_2_1_X/status.xml URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?= rev=3D179149&r1=3D179148&r2=3D179149&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- cocoon/branches/BRANCH_2_1_X/status.xml (original) +++ cocoon/branches/BRANCH_2_1_X/status.xml Mon May 30 14:21:21 2005 @@ -196,6 +196,10 @@ =20 + + XSP Block: Double check and attempt again to load program object fro= m cache. + This avoids that simultaneous requests recompile the same XSP over a= nd over again. + EHDefaultStore.store throws more descriptive exception if key or val= ue are not Serializable.