Return-Path: Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 43461 invoked by uid 500); 8 Jul 2003 14:04:43 -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: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 43449 invoked by uid 500); 8 Jul 2003 14:04:42 -0000 Delivered-To: apmail-cocoon-2.1-cvs@apache.org Received: (qmail 43446 invoked from network); 8 Jul 2003 14:04:42 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 8 Jul 2003 14:04:42 -0000 Received: (qmail 31043 invoked by uid 1260); 8 Jul 2003 14:04:41 -0000 Date: 8 Jul 2003 14:04:41 -0000 Message-ID: <20030708140441.31042.qmail@icarus.apache.org> From: cziegeler@apache.org To: cocoon-2.1-cvs@apache.org Subject: cvs commit: cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/acting HandleFormSubmitAction.java MakeFormAction.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N cziegeler 2003/07/08 07:04:41 Modified: src/blocks/woody/java/org/apache/cocoon/woody/acting HandleFormSubmitAction.java MakeFormAction.java Log: Properly releasing sources Revision Changes Path 1.5 +28 -22 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/acting/HandleFormSubmitAction.java Index: HandleFormSubmitAction.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/acting/HandleFormSubmitAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- HandleFormSubmitAction.java 30 Jun 2003 13:25:28 -0000 1.4 +++ HandleFormSubmitAction.java 8 Jul 2003 14:04:41 -0000 1.5 @@ -61,6 +61,7 @@ import org.apache.cocoon.woody.FormContext; import org.apache.cocoon.woody.FormHandler; import org.apache.cocoon.woody.formmodel.Form; +import org.apache.excalibur.source.Source; import java.util.Map; import java.util.Collections; @@ -80,33 +81,38 @@ */ public class HandleFormSubmitAction extends AbstractWoodyAction implements Action, ThreadSafe, Composable { - public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) + public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws Exception { String formSource = parameters.getParameter("form-definition"); String formAttribute = parameters.getParameter("attribute-name"); String formHandlerClassName = parameters.getParameter("formhandler", null); - Form form = formManager.createForm(resolver.resolveURI(formSource)); - - Request request = ObjectModelHelper.getRequest(objectModel); - FormHandler formHandler = null; - - if (formHandlerClassName != null) { - // TODO cache these classes - Class clazz = Class.forName(formHandlerClassName); - formHandler = (FormHandler)clazz.newInstance(); - formHandler.setup(form); - form.setFormHandler(formHandler); + Source source = resolver.resolveURI(formSource); + try { + Form form = formManager.createForm(source); + + Request request = ObjectModelHelper.getRequest(objectModel); + FormHandler formHandler = null; + + if (formHandlerClassName != null) { + // TODO cache these classes + Class clazz = Class.forName(formHandlerClassName); + formHandler = (FormHandler)clazz.newInstance(); + formHandler.setup(form); + form.setFormHandler(formHandler); + } + + FormContext formContext = new FormContext(request, Locale.US); + + boolean finished = form.process(formContext); + request.setAttribute(formAttribute, form); + + if (finished) + return Collections.EMPTY_MAP; + else + return null; + } finally { + resolver.release(source); } - - FormContext formContext = new FormContext(request, Locale.US); - - boolean finished = form.process(formContext); - request.setAttribute(formAttribute, form); - - if (finished) - return Collections.EMPTY_MAP; - else - return null; } } 1.4 +12 -5 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/acting/MakeFormAction.java Index: MakeFormAction.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/acting/MakeFormAction.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MakeFormAction.java 15 May 2003 10:31:01 -0000 1.3 +++ MakeFormAction.java 8 Jul 2003 14:04:41 -0000 1.4 @@ -57,6 +57,7 @@ import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.woody.FormManager; import org.apache.cocoon.woody.formmodel.Form; +import org.apache.excalibur.source.Source; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.component.Composable; @@ -82,15 +83,21 @@ formManager = (FormManager)componentManager.lookup(FormManager.ROLE); } - public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) + public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws Exception { String formSource = parameters.getParameter("form-definition"); String formAttribute = parameters.getParameter("attribute-name"); - Form form = formManager.createForm(resolver.resolveURI(formSource)); - - Request request = ObjectModelHelper.getRequest(objectModel); - request.setAttribute(formAttribute, form); + Source source = null; + try { + source = resolver.resolveURI(formSource); + Form form = formManager.createForm(source); + + Request request = ObjectModelHelper.getRequest(objectModel); + request.setAttribute(formAttribute, form); + } finally { + resolver.release(source); + } return null; }