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
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/
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
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: + + + + + + + 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 + ...struts.osgi.host +Glassfish +
svn commit: r862720 - in /websites/production/struts/content/development/2.x/docs: s2-012.html s2-013.html security-bulletins.html
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
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/
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; * * * - * + * ** - * + * * <-- In this case myMethod as well as mySecondMethod of the action class *will not pass through the workflow process --> ** * * good_result.ftl *@@ -89,7 +89,7 @@ import java.lang.reflect.Method; * * - * + * * <-- 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 *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
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
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
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
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/
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
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