vgritsenko 01/07/27 11:04:33 Modified: src/org/apache/cocoon/acting AbstractAction.java DatabaseUpdateAction.java DatabaseDeleteAction.java Log: Fix bug reported by Robert Marcano ([EMAIL PROTECTED]): - return empty map on successful database update/delete action - populate request attribute "rows" with number (String object) of rows updated/deleted Revision Changes Path 1.6 +11 -1 xml-cocoon2/src/org/apache/cocoon/acting/AbstractAction.java Index: AbstractAction.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/AbstractAction.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractAction.java 2001/07/23 15:50:10 1.5 +++ AbstractAction.java 2001/07/27 18:04:33 1.6 @@ -7,6 +7,10 @@ *****************************************************************************/ package org.apache.cocoon.acting; +import java.util.Map; +import java.util.TreeMap; +import java.util.Collections; + import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; @@ -19,10 +23,16 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.5 $ $Date: 2001/07/23 15:50:10 $ + * @version CVS $Revision: 1.6 $ $Date: 2001/07/27 18:04:33 $ */ public abstract class AbstractAction extends AbstractLoggable implements Action, Configurable, Disposable { + + /** + * Empty unmodifiable map. Replace with Collections.EMPTY_MAP when + * pre-jdk1.3 support is dropped. + */ + protected static final Map EMPTY_MAP = Collections.unmodifiableMap(new TreeMap()); /** * Configures the Action. 1.7 +7 -2 xml-cocoon2/src/org/apache/cocoon/acting/DatabaseUpdateAction.java Index: DatabaseUpdateAction.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseUpdateAction.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DatabaseUpdateAction.java 2001/07/13 13:21:19 1.6 +++ DatabaseUpdateAction.java 2001/07/27 18:04:33 1.7 @@ -35,7 +35,7 @@ * only one table at a time to update. * * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> - * @version CVS $Revision: 1.6 $ $Date: 2001/07/13 13:21:19 $ + * @version CVS $Revision: 1.7 $ $Date: 2001/07/27 18:04:33 $ */ public class DatabaseUpdateAction extends AbstractDatabaseAction { private static final Map updateStatements = new HashMap(); @@ -83,9 +83,14 @@ this.setColumn(statement, currentIndex, request, keys[i]); } - statement.execute(); + int rows = statement.executeUpdate(); conn.commit(); statement.close(); + + if(rows > 0){ + request.setAttribute("rows", Integer.toString(rows)); + return EMPTY_MAP; + } } catch (Exception e) { if (conn != null) { conn.rollback(); 1.7 +15 -10 xml-cocoon2/src/org/apache/cocoon/acting/DatabaseDeleteAction.java Index: DatabaseDeleteAction.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseDeleteAction.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DatabaseDeleteAction.java 2001/07/13 13:21:15 1.6 +++ DatabaseDeleteAction.java 2001/07/27 18:04:33 1.7 @@ -38,7 +38,7 @@ * the keys. * * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> - * @version CVS $Revision: 1.6 $ $Date: 2001/07/13 13:21:15 $ + * @version CVS $Revision: 1.7 $ $Date: 2001/07/27 18:04:33 $ */ public final class DatabaseDeleteAction extends AbstractDatabaseAction { private static final Map deleteStatements = new HashMap(); @@ -53,15 +53,15 @@ Connection conn = null; int currentIndex = 0; - // read global parameter settings - boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT; - if (this.settings.containsKey("reloadable")) - reloadable = Boolean.getBoolean((String) this.settings.get("reloadable")); - // read local parameter settings + // read global parameter settings + boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT; + if (this.settings.containsKey("reloadable")) + reloadable = Boolean.getBoolean((String) this.settings.get("reloadable")); + // read local parameter settings try { - Configuration conf = - this.getConfiguration(param.getParameter("descriptor", (String) this.settings.get("descriptor")), - param.getParameterAsBoolean("reloadable",reloadable)); + Configuration conf = + this.getConfiguration(param.getParameter("descriptor", (String) this.settings.get("descriptor")), + param.getParameterAsBoolean("reloadable",reloadable)); String query = this.getDeleteQuery(conf); datasource = this.getDataSource(conf); @@ -80,9 +80,14 @@ this.setColumn(statement, i + 1, request, keys[i]); } - statement.execute(); + int rows = statement.executeUpdate(); conn.commit(); statement.close(); + + if(rows > 0){ + request.setAttribute("rows", Integer.toString(rows)); + return EMPTY_MAP; + } } catch (Exception e) { if (conn != null) { conn.rollback(); ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]