You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2003/04/27 17:03:25 UTC
cvs commit: cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/acting SessionFormAction.java
cziegeler 2003/04/27 08:03:25
Modified: src/blocks/session-fw/java/org/apache/cocoon/webapps/session/acting
SessionFormAction.java
Log:
Fixing release of session manager; cleaning up code a little bit
Revision Changes Path
1.3 +44 -35 cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/acting/SessionFormAction.java
Index: SessionFormAction.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/acting/SessionFormAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SessionFormAction.java 24 Mar 2003 14:33:56 -0000 1.2
+++ SessionFormAction.java 27 Apr 2003 15:03:25 -0000 1.3
@@ -142,25 +142,11 @@
Parameters parameters) throws Exception {
Request req = ObjectModelHelper.getRequest(objectModel);
- /* check request validity */
- if (req == null) {
- if (getLogger().isDebugEnabled())
- getLogger().debug ("No request object");
- return null;
- }
-
- /* FIXME (SM): the code below appears unused. Should we remove it?
-
- // read global parameter settings
- boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT;
- if (this.settings.containsKey("reloadable")) {
- reloadable = Boolean.valueOf((String) this.settings.get("reloadable")).booleanValue();
- }*/
-
+ SessionManager sessionManager = null;
// read local settings
try {
- SessionManager sessionManager = (SessionManager)this.manager.lookup(SessionManager.ROLE);
+ sessionManager = (SessionManager)this.manager.lookup(SessionManager.ROLE);
Session session = sessionManager.getSession(true);
Configuration conf = (Configuration)session.getAttribute(
@@ -186,9 +172,11 @@
* old obsoleted method
*/
if (!"".equals (valstr.trim ())) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Validating parameters "
+ "as specified via 'validate' parameter");
+ }
+
/* get list of params to be validated */
String[] rparams = null;
if (!"*".equals(valstr.trim())) {
@@ -199,8 +187,9 @@
for (int i=0; i<desc.length; i++) {
rparams[i] = desc[i].getAttribute("name","");
if ("".equals(rparams[i])) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Wrong syntax of the 'validate' parameter");
+ }
return null;
}
}
@@ -213,8 +202,9 @@
for (int i = 0; i < rparams.length; i ++) {
name = rparams[i];
if (name == null || "".equals (name.trim ())) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Wrong syntax of the 'validate' parameter");
+ }
return null;
}
name = name.trim ();
@@ -225,8 +215,9 @@
result = validateParameter (name, null, desc,
params, true);
if (!result.isOK()) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Validation failed for parameter " + name);
+ }
allOK = false;
}
actionMap.put (name, result.getObject());
@@ -237,9 +228,10 @@
* new set-based method
*/
if (!"".equals (valsetstr.trim ())) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Validating parameters "
+ "from given constraint-set " + valsetstr);
+ }
// go over all constraint sets
// untill the requested set is found
// set number will be in j
@@ -255,10 +247,11 @@
}
}
if (!found) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Given set "
+ valsetstr
+ " does not exist in a description file");
+ }
return null;
}
cset = csets[j];
@@ -269,25 +262,28 @@
ValidatorActionHelper result = null;
String name = null;
HashMap params = new HashMap (set.length);
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Given set "
+ valsetstr
+ " contains " + set.length + " rules");
+ }
+
/* put required params into hash */
for (int i = 0; i < set.length; i ++) {
name = set[i].getAttribute ("name", "").trim();
if ("".equals(name)) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Wrong syntax "
+ " of 'validate' children nr. " + i);
+ }
return null;
}
Object[] values = req.getParameterValues(name);
if (values != null) {
switch (values.length) {
- case 0: params.put(name,null); break;
- case 1: params.put(name,values[0]); break;
- default: params.put(name,values);
+ case 0: params.put(name,null); break;
+ case 1: params.put(name,values[0]); break;
+ default: params.put(name,values);
}
} else {
params.put(name,values);
@@ -300,36 +296,49 @@
result = validateParameter (name, rule, set[i],
desc, params, true);
if (!result.isOK()) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("Validation failed for parameter " + name);
+ }
allOK = false;
}
actionMap.put (name, result.getObject());
resultMap.put (name, result.getResult());
}
}
+
if (!allOK) {
+
// if any validation failed return an empty map
actionMap = null;
resultMap.put("*", ValidatorActionResult.ERROR);
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("All form params validated. An error occurred.");
+ }
+
} else {
+
resultMap.put("*", ValidatorActionResult.OK);
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug ("All form params successfully validated");
+ }
}
+
// store validation results in request attribute
req.setAttribute(Constants.XSP_FORMVALIDATOR_PATH, resultMap);
+
// store validation results in session attribute
// to be used by SessionTransformer
session.setAttribute(req.getParameter(SessionConstants.SESSION_FORM_PARAMETER)+
"validation-result", resultMap);
- //return Collections.unmodifiableMap (actionMap);
+
return actionMap;
- } catch (Exception e) {
- if (getLogger().isDebugEnabled())
- getLogger().debug ("exception: ", e);
+
+ } catch (Exception ignore) {
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug ("exception: ", ignore);
+ }
+ } finally {
+ this.manager.release( sessionManager );
}
return null;
}