svn commit: r1485126 - in /struts/site/trunk/content: resources/archetype-catalog.xml site.xml xdoc/announce.xml xdoc/download.xml xdoc/downloads.xml xdoc/index.xml

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 09:11:38 2013
New Revision: 1485126

URL: http://svn.apache.org/r1485126
Log:
Updates site to reflect new release

Modified:
struts/site/trunk/content/resources/archetype-catalog.xml
struts/site/trunk/content/site.xml
struts/site/trunk/content/xdoc/announce.xml
struts/site/trunk/content/xdoc/download.xml
struts/site/trunk/content/xdoc/downloads.xml
struts/site/trunk/content/xdoc/index.xml

Modified: struts/site/trunk/content/resources/archetype-catalog.xml
URL: 
http://svn.apache.org/viewvc/struts/site/trunk/content/resources/archetype-catalog.xml?rev=1485126&r1=1485125&r2=1485126&view=diff
==
--- struts/site/trunk/content/resources/archetype-catalog.xml (original)
+++ struts/site/trunk/content/resources/archetype-catalog.xml Wed May 22 
09:11:38 2013
@@ -7,42 +7,42 @@
 
 org.apache.struts
 struts2-archetype-blank
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Blank
 
 
 org.apache.struts
 struts2-archetype-convention
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Blank Convention
 
 
 org.apache.struts
 struts2-archetype-dbportlet
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Database Portlet
 
 
 org.apache.struts
 struts2-archetype-plugin
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Plugin
 
 
 org.apache.struts
 struts2-archetype-portlet
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Portlet
 
 
 org.apache.struts
 struts2-archetype-starter
-2.3.14
+2.3.14.1
 
https://repository.apache.org/content/groups/public/
 Struts 2 Archetypes - Starter
 

Modified: struts/site/trunk/content/site.xml
URL: 
http://svn.apache.org/viewvc/struts/site/trunk/content/site.xml?rev=1485126&r1=1485125&r2=1485126&view=diff
==
--- struts/site/trunk/content/site.xml (original)
+++ struts/site/trunk/content/site.xml Wed May 22 09:11:38 2013
@@ -84,7 +84,7 @@
 name="Key Technologies"
 href="primer.html" />
 http://struts.apache.org/release/2.3.x/index.html"; />
 http://svn.apache.org/viewvc/struts/site/trunk/content/xdoc/announce.xml?rev=1485126&r1=1485125&r2=1485126&view=diff
==
--- struts/site/trunk/content/xdoc/announce.xml (original)
+++ struts/site/trunk/content/xdoc/announce.xml Wed May 22 09:11:38 2013
@@ -30,6 +30,50 @@ limitations under the License.
 Announcements - 2012
 
 
+22 May 2013 - Struts 2.3.14.1 General 
Availability Release
+
+The Apache Struts group is pleased to announce that Struts 
2.3.14.1 is
+available as a "General Availability" release. The GA 
designation is our
+highest quality grade.
+
+
+Apache Struts 2 is an elegant, extensible framework for 
creating
+enterprise-ready Java web applications. The framework is 
designed to
+streamline the full development cycle, from building, to 
deploying, to
+maintaining applications over time.
+
+
+Two security issues were solved with this release:
+
+
+Showcase app vulnerability allows remote command 
execution
+
+
+A vulnerability, present in the includeParams 
attribute of the URL and Anchor Tag, allows remote command execution
+
+
+
+
+All developers are strongly advised to update existing Struts 
2 applications to Struts 2.3.14.1.
+
+
+Struts 2.3.14.1 is available in a full distribution or as 
separate library, source, example and documentation distributions, from the
+http://struts.apache.org/download.cgi#struts23141";>releases page.
+The release is also available through the central Maven 
repository under Group ID "org.apache.struts". The
+  

svn commit: r862716 [2/2] - in /websites/staging/struts/trunk/content: ./ dev/

2013-05-22 Thread buildbot
Modified: websites/staging/struts/trunk/content/kickstart.html
==
--- websites/staging/struts/trunk/content/kickstart.html (original)
+++ websites/staging/struts/trunk/content/kickstart.html Wed May 22 09:13:11 
2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 Kickstart FAQ
 
@@ -53,7 +53,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last Published: 2013-05-22
   
 
 
@@ -151,9 +151,9 @@
   
   
 
-  
+  
   
-Struts 2.3.14 (GA)
+Struts 2.3.14.1 (GA)
 
   
   

Modified: websites/staging/struts/trunk/content/mail.html
==
--- websites/staging/struts/trunk/content/mail.html (original)
+++ websites/staging/struts/trunk/content/mail.html Wed May 22 09:13:11 2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 
 Mailing Lists
@@ -54,7 +54,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last Published: 2013-05-22
   
 
 
@@ -154,9 +154,9 @@
   
   
 
-  
+  
   
-Struts 2.3.14 (GA)
+Struts 2.3.14.1 (GA)
 
   
   

Modified: websites/staging/struts/trunk/content/primer.html
==
--- websites/staging/struts/trunk/content/primer.html (original)
+++ websites/staging/struts/trunk/content/primer.html Wed May 22 09:13:11 2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 
 Key Technologies Primer
@@ -54,7 +54,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last Published: 2013-05-22
   
 
 
@@ -152,9 +152,9 @@
   
   
 
-  
+  
   
-Struts 2.3.14 (GA)
+Struts 2.3.14.1 (GA)
 
   
   

Modified: websites/staging/struts/trunk/content/release-checklist.html
==
--- websites/staging/struts/trunk/content/release-checklist.html (original)
+++ websites/staging/struts/trunk/content/release-checklist.html Wed May 22 
09:13:11 2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 
 Release Checklist - Apache Struts Project
@@ -54,7 +54,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last Published: 2013-05-22
   
 
 
@@ -154,9 +154,9 @@
   
   
 
-  
+  
   
-Struts 2.3.14 (GA)
+Struts 2.3.14.1 (GA)
 
   
   

Modified: websites/staging/struts/trunk/content/roadmap.html
==
--- websites/staging/struts/trunk/content/roadmap.html (original)
+++ websites/staging/struts/trunk/content/roadmap.html Wed May 22 09:13:11 2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 Roadmap FAQ
 
@@ -53,7 +53,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last Published: 2013-05-22
   
 
 
@@ -153,9 +153,9 @@
   
   
 
-  
+  
   
-Struts 2.3.14 (GA)
+Struts 2.3.14.1 (GA)
 
   
   

Modified: websites/staging/struts/trunk/content/security.html
==
--- websites/staging/struts/trunk/content/security.html (original)
+++ websites/staging/struts/trunk/content/security.html Wed May 22 09:13:11 2013
@@ -1,13 +1,13 @@
 
 
 http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   
 
 
-
+
 
 
 Security Issues
@@ -54,7 +54,7 @@
 
 
 
-  Last Published: 2013-05-14
+  Last

svn commit: r862717 - in /websites/production/struts/content/development/2.x/docs: osgi-plugin.html parameters-interceptor.html struts-next.html

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 09:19:09 2013
New Revision: 862717

Log:
Updates draft docs

Modified:
websites/production/struts/content/development/2.x/docs/osgi-plugin.html

websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
websites/production/struts/content/development/2.x/docs/struts-next.html

Modified: 
websites/production/struts/content/development/2.x/docs/osgi-plugin.html
==
--- websites/production/struts/content/development/2.x/docs/osgi-plugin.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/osgi-plugin.html 
Wed May 22 09:19:09 2013
@@ -126,7 +126,7 @@ under the License. 
   Overview
 https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif"; 
width="16" height="16" align="absmiddle" alt="" border="0">This plugin 
is only experimental and can change in the future.
 
-This plugin provides support for starting an instance of Apache Felix 
inside a web application, and scanning installed bundles for Struts 
configuration. An admin bundle is also provided.
+This plugin provides support for starting an instance of Apache Felix 
inside a web application, and scanning installed bundles for Struts 
configuration. An admin bundle is also provided. It can be used with Glassfish 
3 as well (Glassfish 3 based on Apache Felix as well), but in such a way 
struts.osgi.host must be defined.
 
 Features
 
@@ -189,10 +189,6 @@ Import-Package: com.opensymphony.xwork2
 
 
 
-
-
-
-
Configure your web.xml like:
 
 
@@ -250,10 +246,6 @@ Import-Package: com.opensymphony.xwork2
 
 
 
-
-
-
-
Add the Spring OSGi, and Spring Web dependencies to your web app, 
if you are using maven:
 
 
@@ -389,6 +381,17 @@ org.springframework.web-2.5.5.A.jar
 
 
 
+
+If you are running your application on Glassfish 3 (which already contains 
Apache Felix) you must specify struts.osgi.host, like below:
+
+
+
+struts.osgi.host
+Glassfish
+
+
+
+
 
 
 

Modified: 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
==
--- 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
 (original)
+++ 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
 Wed May 22 09:19:09 2013
@@ -234,6 +234,22 @@ over ParametersInterceptor which means i
 The best idea is to define very tight restrictions with 
ParametersInterceptor and relax them per action with
 @{link 
ParameterNameAware#acceptableParameterName(String)}
 
+Warning on 
missing parameters
+
+When there is no setter for given parameter name, a warning message like 
below will be logged in devMode:
+
+
+SEVERE: Developer Notification (set struts.devMode to false to disable 
this message):
+Unexpected Exception caught setting 'search' on 'class demo.ItemSearchAction: 
Error setting expression 'search' with value ['search', ]
+Error setting expression 'search' with value ['search', ] - [unknown location]
+   at 
com.opensymphony.xwork2.ognl.OgnlValueStack.handleRuntimeException(OgnlValueStack.java:201)
+   at 
com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:178)
+   at 
com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:152)
+
+
+
+Thus is expected behaviour to allow developer to spot missing setter or 
typo in either parameter name or setter.
+
 Examples
 
 

Modified: 
websites/production/struts/content/development/2.x/docs/struts-next.html
==
--- websites/production/struts/content/development/2.x/docs/struts-next.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/struts-next.html 
Wed May 22 09:19:09 2013
@@ -170,14 +170,15 @@ under the License. 
Drop support for Struts 1 (remove plugin)
Remove deprecated APIs
Switch to Java 1.6
+   Rename XWork packages to org.apache.struts.xwork
Prepare the first release
 
 
 
 Plan for Struts 3
 
-   Rename XWork packages to org.apache.struts.xwork
Rename Struts 2 packages to org.apache.struts
+   ...
 
 
 




svn commit: r862720 - in /websites/production/struts/content/development/2.x/docs: s2-012.html s2-013.html security-bulletins.html

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 09:38:55 2013
New Revision: 862720

Log:
Updates draft docs

Added:
websites/production/struts/content/development/2.x/docs/s2-012.html
websites/production/struts/content/development/2.x/docs/s2-013.html
Modified:

websites/production/struts/content/development/2.x/docs/security-bulletins.html

Added: websites/production/struts/content/development/2.x/docs/s2-012.html
==
--- websites/production/struts/content/development/2.x/docs/s2-012.html (added)
+++ websites/production/struts/content/development/2.x/docs/s2-012.html Wed May 
22 09:38:55 2013
@@ -0,0 +1,265 @@
+
+
+
+http://www.w3.org/TR/html4/loose.dtd";>
+
+  
+https://struts.apache.org/css/default.css";>
+
+  .dp-highlighter {
+width:95% !important;
+  }
+
+
+  .footer {
+background-image:  
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+background-repeat: repeat-x;
+background-position:   left top;
+padding-top:   4px;
+color: #666;
+  }
+
+
+  var hide = null;
+  var show = null;
+  var children = null;
+
+  function init() {
+/* Search form initialization */
+var form = document.forms['search'];
+if (form != null) {
+  form.elements['domains'].value = location.hostname;
+  form.elements['sitesearch'].value = location.hostname;
+}
+
+/* Children initialization */
+hide = document.getElementById('hide');
+show = document.getElementById('show');
+children = document.all != null ?
+   document.all['children'] :
+   document.getElementById('children');
+if (children != null) {
+  children.style.display = 'none';
+  show.style.display = 'inline';
+  hide.style.display = 'none';
+}
+  }
+
+  function showChildren() {
+children.style.display = 'block';
+show.style.display = 'none';
+hide.style.display = 'inline';
+  }
+
+  function hideChildren() {
+children.style.display = 'none';
+show.style.display = 'inline';
+hide.style.display = 'none';
+  }
+
+S2-012
+  
+  
+
+  
+
+   Apache Struts 2 Documentation > Home > Security 
Bulletins > S2-012
+
+
+  http://www.google.com/search"; 
method="get">
+
+
+
+
+
+
+  
+
+   
+
+
+
+  
+
+
+Apache Struts 
2 Documentation
+S2-012
+
+
+  https://cwiki.apache.org/confluence/pages/editpage.action?pageId=31818223";>
+https://cwiki.apache.org/confluence/images/icons/notep_16.gif"; height="16" 
width="16" border="0" align="absmiddle" title="Edit Page">
+https://cwiki.apache.org/confluence/pages/editpage.action?pageId=31818223";>Edit
 Page
+   
+  https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+https://cwiki.apache.org/confluence/images/icons/browse_space.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Browse Space">
+https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space
+   
+  https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=31818223";>
+https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Add Page">
+  https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=31818223";>Add
 Page
+   
+  https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=31818223";>
+https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Add News">
+  https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=31818223";>Add
 News
+
+  
+
+  
+
+  Summary
+
+
+Showcase app vulnerability allows remote command execution
+
+
+
+
+
+Who should read this
+All Struts 2 developers
+
+
+Impact of vulnerability
+Remote command execution
+
+
+Maximum security rating
+Critical
+
+
+Recommendation
+Developers should immediately upgrade to http://struts.apache.org/download.cgi#struts23141"; class="external-link" 
rel="nofollow">Struts 2.3.14.1
+
+
+Affected Software
+ Struts 2.0.0 - Struts 2.3.14 
+
+
+Reporter
+ Xgc Kxlzx, Alibaba Security Team 
+
+
+Original Description
+ Reported directly to security@a.o
+
+
+
+
+Problem
+
+OGNL provides, among other f

svn commit: r1485146 - /struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 10:46:33 2013
New Revision: 1485146

URL: http://svn.apache.org/r1485146
Log:
Adds proper JavaDoc comment

Modified:

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java?rev=1485146&r1=1485145&r2=1485146&view=diff
==
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationWorkflowAware.java
 Wed May 22 10:46:33 2013
@@ -1,9 +1,12 @@
 package com.opensymphony.xwork2.interceptor;
 
 /**
- * ValidationWorkflowAware
+ * ValidationWorkflowAware classes can programmatically change result name 
when errors occurred
+ *
+ * This interface can be only applied to action which already implements 
{@link com.opensymphony.xwork2.ValidationAware} interface!
  */
 public interface ValidationWorkflowAware {
 
 String getInputResultName();
+
 }




svn commit: r1485149 - in /struts/struts2/trunk/xwork-core/src: main/java/com/opensymphony/xwork2/interceptor/ test/java/com/opensymphony/xwork2/interceptor/

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 11:10:29 2013
New Revision: 1485149

URL: http://svn.apache.org/r1485149
Log:
WW-4071 Adds new ValidationErrorAware interface to allow notify action about 
action/field errors

Added:

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationErrorAware.java

struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ValidationErrorAwareTest.java
Modified:

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java?rev=1485149&r1=1485148&r2=1485149&view=diff
==
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
 Wed May 22 11:10:29 2013
@@ -71,14 +71,14 @@ import java.lang.reflect.Method;
  * 
  * 
  * 
- * 
+ *
  * 
  * 
  * 
  * 
  * good_result.ftl
  * 
- * 
+ *
  * <-- In this case myMethod as well as mySecondMethod of the action class
  *will not pass through the workflow process -->
  * 
@@ -89,7 +89,7 @@ import java.lang.reflect.Method;
  * 
  * good_result.ftl
  * 
- * 
+ *
  * <-- In this case, the result named "error" will be used when
  *an action / field error is found -->
  * <-- The Interceptor will only be applied for myWorkflowMethod method of 
action
@@ -104,7 +104,7 @@ import java.lang.reflect.Method;
  * 
  * good_result.ftl
  * 
- * 
+ *
  * 
  * 
  *
@@ -121,7 +121,7 @@ public class DefaultWorkflowInterceptor 
 private static final Logger LOG = 
LoggerFactory.getLogger(DefaultWorkflowInterceptor.class);
 
 private static final Class[] EMPTY_CLASS_ARRAY = new Class[0];
-
+
 private String inputResultName = Action.INPUT;
 
 /**
@@ -149,31 +149,73 @@ public class DefaultWorkflowInterceptor 
 
 if (validationAwareAction.hasErrors()) {
 if (LOG.isDebugEnabled()) {
-LOG.debug("Errors on action " + validationAwareAction + ", 
returning result name 'input'");
+LOG.debug("Errors on action [#0], returning result name 
[#1]", validationAwareAction, inputResultName);
 }
 
 String resultName = inputResultName;
+resultName = processValidationWorkflowAware(action, 
resultName);
+resultName = processInputConfig(action, 
invocation.getProxy().getMethod(), resultName);
+resultName = processValidationErrorAware(action, resultName);
 
-if (action instanceof ValidationWorkflowAware) {
-resultName = ((ValidationWorkflowAware) 
action).getInputResultName();
-}
+return resultName;
+}
+}
 
-InputConfig annotation = 
action.getClass().getMethod(invocation.getProxy().getMethod(), 
EMPTY_CLASS_ARRAY).getAnnotation(InputConfig.class);
-if (annotation != null) {
-if (!annotation.methodName().equals("")) {
-Method method = 
action.getClass().getMethod(annotation.methodName());
-resultName = (String) method.invoke(action);
-} else {
-resultName = annotation.resultName();
-}
-}
+return invocation.invoke();
+}
 
+/**
+ * Process {@link ValidationWorkflowAware} interface
+ */
+private String processValidationWorkflowAware(final Object action, final 
String currentResultName) {
+String resultName = currentResultName;
+if (action instanceof ValidationWorkflowAware) {
+resultName = ((ValidationWorkflowAware) 
action).getInputResultName();
+if (LOG.isDebugEnabled()) {
+LOG.debug("Changing result name from [#0] to [#1] because of 
processing [#2] interface applied to [#3]",
+currentResultName, resultName, 
InputConfig.class.getSimpleName(), 
ValidationWorkflowAware.class.getSimpleName(), action);
+}
+}
+return resultName;
+}
 
- 

svn commit: r1485153 - /struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 22 11:26:13 2013
New Revision: 1485153

URL: http://svn.apache.org/r1485153
Log:
WW-4071 Adds some comments about the supported *Aware interfaces

Modified:

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java?rev=1485153&r1=1485152&r2=1485153&view=diff
==
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
 Wed May 22 11:26:13 2013
@@ -30,7 +30,7 @@ import java.lang.reflect.Method;
  * An interceptor that makes sure there are not validation errors before 
allowing the interceptor chain to continue.
  * This interceptor does not perform any validation.
  * 
- * This interceptor does nothing if the name of the method being invoked 
is specified in the excludeMethods
+ * This interceptor does nothing if the name of the method being invoked is 
specified in the excludeMethods
  * parameter. excludeMethods accepts a comma-delimited list of method 
names. For example, requests to
  * foo!input.action and foo!back.action will be skipped by this 
interceptor if you set the
  * excludeMethods parameter to "input, back".
@@ -42,33 +42,36 @@ import java.lang.reflect.Method;
  * all methods for both parameters.
  * See {@link MethodFilterInterceptor} for more info.
  * 
+ * This interceptor also supports the following interfaces which can 
implemented by actions:
+ * 
+ * ValidationAware - implemented by ActionSupport class
+ * ValidationWorkflowAware - allows changing result name 
programmatically
+ * ValidationErrorAware - notifies action about errors and also allow 
change result name
+ * 
+ *
+ * You can also use InputConfig annotation to change result name returned when 
validation errors occurred.
+ *
  * 
- * 
- *  Interceptor parameters:
- * 
+ *
+ * Interceptor parameters:
+ *
  * 
- * 
  * 
- * 
  * inputResultName - Default to "input". Determine the result name to be 
returned when
  * an action / field error is found.
- * 
  * 
- * 
  * 
- * 
- *  Extending the interceptor:
- * 
- * 
- * 
+ *
+ * Extending the interceptor:
+ *
  * 
- * 
+ *
  * There are no known extension points for this interceptor.
- * 
+ *
  * 
- * 
- *  Example code:
- * 
+ *
+ * Example code:
+ *
  * 
  * 
  *




[CONF] Confluence Changes in the last 24 hours

2013-05-22 Thread confluence
This is a daily summary of all recent changes in Confluence.

-
Updated Spaces:
-


Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL)

Pages
-
Camel 2.12.0 Release edited by  muellerc  (03:20 PM)
https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.12.0+Release



Apache Cloudstack (https://cwiki.apache.org/confluence/display/CLOUDSTACK)

Pages
-
Isolation Advance zone using PVLAN execution result edited by  angelines  
(11:19 PM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Isolation+Advance+zone+using+PVLAN+execution+result

Multiple IP Ranges Support Test Execution created by sanjeevn (01:29 PM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Multiple+IP+Ranges+Support+Test+Execution

Apache CloudStack Weekly News - 20 May 2013 edited by  jzb  (10:44 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Apache+CloudStack+Weekly+News+-+20+May+2013

Who uses Apache CloudStack? edited by  toto8  (09:18 AM)
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=30744222

SSVM, templates, Secondary storage troubleshooting edited by  
nitin.me...@citrix.com  (05:19 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/SSVM%2C+templates%2C+Secondary+storage+troubleshooting



Apache Curator (https://cwiki.apache.org/confluence/display/CURATOR)

Pages
-
TN6 created by randgalt (02:05 PM)
https://cwiki.apache.org/confluence/display/CURATOR/TN6

Tech Notes edited by  randgalt  (02:05 PM)
https://cwiki.apache.org/confluence/display/CURATOR/Tech+Notes



Apache CXF Documentation (https://cwiki.apache.org/confluence/display/CXF20DOC)

Pages
-
3.0 Migration Guide edited by  dkulp  (11:59 AM)
https://cwiki.apache.org/confluence/display/CXF20DOC/3.0+Migration+Guide



KNOX (https://cwiki.apache.org/confluence/display/KNOX)

Pages
-
Secure MapReduce edited by  kminder  (02:36 PM)
https://cwiki.apache.org/confluence/display/KNOX/Secure+MapReduce



Apache Qpid (https://cwiki.apache.org/confluence/display/qpid)

Pages
-
0.22 Release edited by  justi9  (01:39 PM)
https://cwiki.apache.org/confluence/display/qpid/0.22+Release



Traffic Server (https://cwiki.apache.org/confluence/display/TS)

Pages
-
Development Process edited by  i.galic  (03:58 PM)
https://cwiki.apache.org/confluence/display/TS/Development+Process



Apache Wicket (https://cwiki.apache.org/confluence/display/WICKET)

Pages
-
Migration to Wicket 7.0 edited by  svenmeier  (11:17 AM)
https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0

Wicket Ajax edited by  mgrigorov  (07:57 AM)
https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax



Apache Struts 2 Documentation (https://cwiki.apache.org/confluence/display/WW)

Pages
-
Default Workflow Interceptor edited by  lukaszlenart  (07:16 AM)
https://cwiki.apache.org/confluence/display/WW/Default+Workflow+Interceptor

Interceptors edited by  lukaszlenart  (07:16 AM)
https://cwiki.apache.org/confluence/display/WW/Interceptors

Security Bulletins edited by  lukaszlenart  (05:32 AM)
https://cwiki.apache.org/confluence/display/WW/Security+Bulletins



-
Users
-

arunviswam
https://cwiki.apache.org/confluence/display/~arunviswam

Change your notification preferences: 
https://cwiki.apache.org/confluence/users/viewnotifications.action


svn commit: r1485576 - in /struts/struts2/trunk/core/src/main/java/org/apache/struts2/config: LegacyPropertiesConfigurationProvider.java Settings.java

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Thu May 23 05:34:19 2013
New Revision: 1485576

URL: http://svn.apache.org/r1485576
Log:
WW-3689 Adds synchronized block with global lock to avoid NPE

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/Settings.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java?rev=1485576&r1=1485575&r2=1485576&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java
 Thu May 23 05:34:19 2013
@@ -21,22 +21,21 @@
 
 package org.apache.struts2.config;
 
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.StringTokenizer;
-
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.inject.Context;
 import com.opensymphony.xwork2.inject.Factory;
-import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import org.apache.struts2.StrutsConstants;
 
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.StringTokenizer;
+
 public class LegacyPropertiesConfigurationProvider implements 
ConfigurationProvider {
 
 /**
@@ -69,10 +68,10 @@ public class LegacyPropertiesConfigurati
 loadSettings(props, settings);
 
 // Set default locale by lazily resolving the locale property as 
needed into a Locale object
-builder.factory(Locale.class, new Factory() {
+builder.factory(Locale.class,  new Factory() {
 private Locale locale;
 
-public synchronized Object create(Context context) throws 
Exception {
+public synchronized Locale create(Context context) throws 
Exception {
 if (locale == null) {
 String loc = 
context.getContainer().getInstance(String.class, StrutsConstants.STRUTS_LOCALE);
 if (loc != null) {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/Settings.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/Settings.java?rev=1485576&r1=1485575&r2=1485576&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/Settings.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/Settings.java 
Thu May 23 05:34:19 2013
@@ -21,16 +21,14 @@
 
 package org.apache.struts2.config;
 
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.StringTokenizer;
-
-import org.apache.struts2.StrutsConstants;
-
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.util.location.Location;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.struts2.StrutsConstants;
+
+import java.util.Iterator;
+import java.util.Locale;
 
 
 /**
@@ -75,6 +73,11 @@ class Settings {
 static Settings defaultImpl;
 
 /**
+ * Guard used to protect the defaultImpl initialisation.
+ */
+private static final Object DEFAULT_LOCK = new Object();
+
+/**
  * An instance of the default locale as specified by the 
struts.locale  setting.
  *
  * @see #getLocale
@@ -267,23 +270,27 @@ class Settings {
  */
 private static Settings getDefaultInstance() {
 if (defaultImpl == null) {
-// Create bootstrap implementation
-defaultImpl = new DefaultSettings();
+synchronized (DEFAULT_LOCK) {
+if (defaultImpl == null) {
+// Create bootstrap implementation
+defaultImpl = new DefaultSettings();
 
-// Create default implementation
-try {
-String className = get(StrutsConstants.STRUTS_CONFIGURATION);
-
-if (!className.equals(defaultImpl.getClass().getName())) {
+// Create default implementation
 try {
-// singleton instances shouldn't be built accessing 
request or session-specific context data
- 

svn commit: r1485592 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/Component.java main/java/org/apache/struts2/components/UIBean.java test/java/org/apache/struts2/compon

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Thu May 23 06:31:48 2013
New Revision: 1485592

URL: http://svn.apache.org/r1485592
Log:
WW-3623 Extends id generation logic to support case when tag doesn't have id, 
key nor name defined and some generics fix

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java?rev=1485592&r1=1485591&r2=1485592&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
 Thu May 23 06:31:48 2013
@@ -53,7 +53,7 @@ public class Component {
 public static final String COMPONENT_STACK = "__component_stack";
 
 protected ValueStack stack;
-protected Map parameters;
+protected Map parameters;
 protected ActionMapper actionMapper;
 protected boolean throwExceptionOnELFailure;
 private UrlHelper urlHelper;
@@ -65,7 +65,7 @@ public class Component {
  */
 public Component(ValueStack stack) {
 this.stack = stack;
-this.parameters = new LinkedHashMap();
+this.parameters = new LinkedHashMap();
 getComponentStack().push(this);
 }
 
@@ -107,10 +107,10 @@ public class Component {
  * Gets the component stack of this component.
  * @return the component stack of this component, never null.
  */
-public Stack getComponentStack() {
-Stack componentStack = (Stack) stack.getContext().get(COMPONENT_STACK);
+public Stack getComponentStack() {
+Stack componentStack = (Stack) 
stack.getContext().get(COMPONENT_STACK);
 if (componentStack == null) {
-componentStack = new Stack();
+componentStack = new Stack();
 stack.getContext().put(COMPONENT_STACK, componentStack);
 }
 return componentStack;
@@ -449,7 +449,7 @@ public class Component {
  * Gets the parameters.
  * @return the parameters. Is never null.
  */
-public Map getParameters() {
+public Map getParameters() {
 return parameters;
 }
 
@@ -457,7 +457,7 @@ public class Component {
  * Adds all the given parameters to this component's own parameters.
  * @param params the parameters to add.
  */
-public void addAllParameters(Map params) {
+public void addAllParameters(Map params) {
 parameters.putAll(params);
 }
 
@@ -472,7 +472,7 @@ public class Component {
  */
 public void addParameter(String key, Object value) {
 if (key != null) {
-Map params = getParameters();
+Map params = getParameters();
 
 if (value == null) {
 params.remove(key);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?rev=1485592&r1=1485591&r2=1485592&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
 Thu May 23 06:31:48 2013
@@ -43,7 +43,6 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -806,7 +805,7 @@ public abstract class UIBean extends Com
 
 if ( name != null ) {
 // list should have been created by the form component
-List tags = (List) form.getParameters().get("tagNames");
+List tags = (List) 
form.getParameters().get("tagNames");
 tags.add(name);
 }
 }
@@ -829,8 +828,8 @@ public abstract class UIBean extends Com
 Map overallTooltipConfigMap = getTooltipConfig(form);
 overallTooltipConfigMap.putAll(tooltipConfigMap); // override 
parent form's tooltip config
 
-for (Iterator i = 
overallTooltipConfigMap.entrySet().iterator(); i.hasNext(); ) {
-Map.Entry entry = (Map.Entry) i.next();
+for (Object o : overallTooltipConfigMap.entrySet()) {
+Map.Entry entry = (Map.Entry) o;
 addParameter((String) entry.getKey(), entry.getValue());
 }
 }
@

svn commit: r862821 - in /websites/production/struts/content: ./ development/ release/

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Thu May 23 06:40:58 2013
New Revision: 862821

Log:
Push new version to production

Added:
websites/production/struts/content/
  - copied from r862820, websites/staging/struts/trunk/content/
websites/production/struts/content/development/
  - copied from r862820, websites/production/struts/content/development/
websites/production/struts/content/release/
  - copied from r862820, websites/production/struts/content/release/



svn commit: r862823 - in /websites/production/struts/content/development/2.x/docs: default-workflow-interceptor.html interceptors.html s2-012.html s2-013.html sample-announcements.html

2013-05-22 Thread lukaszlenart
Author: lukaszlenart
Date: Thu May 23 06:57:07 2013
New Revision: 862823

Log:
Updates draft docs

Added:

websites/production/struts/content/development/2.x/docs/default-workflow-interceptor.html
Modified:
websites/production/struts/content/development/2.x/docs/interceptors.html
websites/production/struts/content/development/2.x/docs/s2-012.html
websites/production/struts/content/development/2.x/docs/s2-013.html

websites/production/struts/content/development/2.x/docs/sample-announcements.html

Added: 
websites/production/struts/content/development/2.x/docs/default-workflow-interceptor.html
==
--- 
websites/production/struts/content/development/2.x/docs/default-workflow-interceptor.html
 (added)
+++ 
websites/production/struts/content/development/2.x/docs/default-workflow-interceptor.html
 Thu May 23 06:57:07 2013
@@ -0,0 +1,219 @@
+
+
+
+http://www.w3.org/TR/html4/loose.dtd";>
+
+  
+https://struts.apache.org/css/default.css";>
+
+  .dp-highlighter {
+width:95% !important;
+  }
+
+
+  .footer {
+background-image:  
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+background-repeat: repeat-x;
+background-position:   left top;
+padding-top:   4px;
+color: #666;
+  }
+
+
+  var hide = null;
+  var show = null;
+  var children = null;
+
+  function init() {
+/* Search form initialization */
+var form = document.forms['search'];
+if (form != null) {
+  form.elements['domains'].value = location.hostname;
+  form.elements['sitesearch'].value = location.hostname;
+}
+
+/* Children initialization */
+hide = document.getElementById('hide');
+show = document.getElementById('show');
+children = document.all != null ?
+   document.all['children'] :
+   document.getElementById('children');
+if (children != null) {
+  children.style.display = 'none';
+  show.style.display = 'inline';
+  hide.style.display = 'none';
+}
+  }
+
+  function showChildren() {
+children.style.display = 'block';
+show.style.display = 'none';
+hide.style.display = 'inline';
+  }
+
+  function hideChildren() {
+children.style.display = 'none';
+show.style.display = 'inline';
+hide.style.display = 'none';
+  }
+
+Default Workflow Interceptor
+  
+  
+
+  
+
+   Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Interceptors > Default Workflow Interceptor
+
+
+  http://www.google.com/search"; 
method="get">
+
+
+
+
+
+
+  
+
+   
+
+
+
+  
+
+
+Apache Struts 
2 Documentation
+Default 
Workflow Interceptor
+
+
+  https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13995";>
+https://cwiki.apache.org/confluence/images/icons/notep_16.gif"; height="16" 
width="16" border="0" align="absmiddle" title="Edit Page">
+https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13995";>Edit
 Page
+   
+  https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+https://cwiki.apache.org/confluence/images/icons/browse_space.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Browse Space">
+https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space
+   
+  https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13995";>
+https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Add Page">
+  https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13995";>Add
 Page
+   
+  https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13995";>
+https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"; 
height="16" width="16" border="0" align="absmiddle" title="Add News">
+  https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13995";>Add
 News
+
+  
+
+  
+
+  
+An interceptor that makes sure there are not validation errors before allowing 
the interceptor chain to continue.
+This interceptor does not perform any validation.
+
+This interceptor does nothing if the name of the method being invoked is 
specified in the excludeMethods
+paramete