Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 29995 invoked from network); 30 Mar 2007 16:13:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Mar 2007 16:13:45 -0000 Received: (qmail 91785 invoked by uid 500); 30 Mar 2007 16:13:52 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 91728 invoked by uid 500); 30 Mar 2007 16:13:52 -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 91717 invoked by uid 99); 30 Mar 2007 16:13:52 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Mar 2007 09:13:52 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Mar 2007 09:13:44 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 346841A9838; Fri, 30 Mar 2007 09:13:23 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r524153 - in /cocoon/trunk/blocks/cocoon-template/cocoon-template-impl: src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java status.xml Date: Fri, 30 Mar 2007 16:13:22 -0000 To: cvs@cocoon.apache.org From: vgritsenko@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070330161323.346841A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vgritsenko Date: Fri Mar 30 09:13:22 2007 New Revision: 524153 URL: http://svn.apache.org/viewvc?view=rev&rev=524153 Log: bug fix. it should work, but can't compile atm. Modified: cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/status.xml Modified: cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java?view=diff&rev=524153&r1=524152&r2=524153 ============================================================================== --- cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java (original) +++ cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/script/DefaultScriptManager.java Fri Mar 30 09:13:22 2007 @@ -16,42 +16,46 @@ */ package org.apache.cocoon.template.script; +import org.apache.cocoon.ProcessingException; +import org.apache.cocoon.components.source.SourceUtil; +import org.apache.cocoon.template.environment.ParsingContext; +import org.apache.cocoon.template.expression.StringTemplateParser; +import org.apache.cocoon.template.script.event.StartDocument; +import org.apache.cocoon.util.location.LocationUtils; + import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; -import org.apache.avalon.framework.service.ServiceSelector; import org.apache.avalon.framework.service.Serviceable; import org.apache.avalon.framework.thread.ThreadSafe; -import org.apache.cocoon.ProcessingException; -import org.apache.cocoon.components.source.SourceUtil; -import org.apache.cocoon.template.environment.ParsingContext; -import org.apache.cocoon.template.expression.StringTemplateParser; -import org.apache.cocoon.template.script.event.StartDocument; import org.apache.excalibur.source.Source; import org.apache.excalibur.source.SourceException; import org.apache.excalibur.source.SourceResolver; import org.apache.excalibur.source.SourceValidity; import org.apache.excalibur.store.Store; + import org.xml.sax.Locator; import org.xml.sax.SAXParseException; /** * @version $Id$ */ -public class DefaultScriptManager - extends AbstractLogEnabled - implements Serviceable, Disposable, ScriptManager, ThreadSafe { +public class DefaultScriptManager extends AbstractLogEnabled + implements Serviceable, Disposable, ScriptManager, + ThreadSafe { + + private static final String JX_STORE_PREFIX = "jxtg:"; + + private String stringTemplateParserName; private ServiceManager manager; - private final static String JX_STORE_PREFIX = "jxtg:"; private Store store; private InstructionFactory instructionFactory; - private ServiceSelector stringTemplateParserSelector; private StringTemplateParser stringTemplateParser; - private String stringTemplateParserName = "jxtg"; public DefaultScriptManager() { + stringTemplateParserName = "jxtg"; } /** @@ -59,27 +63,23 @@ */ public void service(ServiceManager manager) throws ServiceException { this.manager = manager; - this.store = (Store) this.manager.lookup(Store.TRANSIENT_STORE); - this.instructionFactory = (InstructionFactory) this.manager.lookup(InstructionFactory.ROLE); - this.stringTemplateParserSelector = (ServiceSelector) this.manager.lookup(StringTemplateParser.ROLE - + "Selector"); - this.stringTemplateParser = (StringTemplateParser) this.stringTemplateParserSelector - .select(this.stringTemplateParserName); + this.store = (Store) manager.lookup(Store.TRANSIENT_STORE); + this.instructionFactory = (InstructionFactory) manager.lookup(InstructionFactory.ROLE); + this.stringTemplateParser = (StringTemplateParser) + manager.lookup(StringTemplateParser.ROLE + "/" + stringTemplateParserName); } /** * @see org.apache.avalon.framework.activity.Disposable#dispose() */ public void dispose() { - if ( this.manager != null ) { + if (stringTemplateParser != null) { + manager.release(stringTemplateParser); + stringTemplateParser = null; + } + if (this.manager != null) { this.manager.release(this.store); this.manager.release(this.instructionFactory); - if ( this.stringTemplateParserSelector != null ) { - this.stringTemplateParserSelector.release(this.stringTemplateParser); - this.manager.release(this.stringTemplateParserSelector); - this.stringTemplateParserSelector = null; - this.stringTemplateParser = null; - } this.store = null; this.instructionFactory = null; this.manager = null; @@ -142,14 +142,19 @@ } } catch (SourceException se) { throw SourceUtil.handle("Error during resolving of '" + uri + "'.", se); - } catch (Exception exc) { - throw new SAXParseException(exc.getMessage(), location, exc); + } catch (ProcessingException e) { + throw ProcessingException.throwLocated(null, e, LocationUtils.getLocation(location)); + } catch (Exception e) { + throw new SAXParseException(e.getMessage(), location, e); } finally { - if (input != null) + if (input != null) { resolver.release(input); - if (resolver != null) + } + if (resolver != null) { manager.release(resolver); + } } + return doc; } -} \ No newline at end of file +} Modified: cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/status.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/status.xml?view=diff&rev=524153&r1=524152&r2=524153 ============================================================================== --- cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/status.xml (original) +++ cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/status.xml Fri Mar 30 09:13:22 2007 @@ -66,6 +66,9 @@ + + Fix exception handling in script manager. Do not wrap processing exception into SAXException. + Fix an ArrrayIndexOutOfBoundsException with jx:comment.