svn commit: r1324674 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java
Author: mcucchiara Date: Wed Apr 11 09:42:13 2012 New Revision: 1324674 URL: http://svn.apache.org/viewvc?rev=1324674&view=rev Log: Update commons lang3 reference Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java?rev=1324674&r1=1324673&r2=1324674&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java Wed Apr 11 09:42:13 2012 @@ -25,7 +25,7 @@ import com.opensymphony.xwork2.ActionInv import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsStatics;
svn commit: r1324870 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/Dispatcher.java test/java/org/apache/struts2/dispatcher/DispatcherTest.java
Author: lukaszlenart Date: Wed Apr 11 17:12:35 2012 New Revision: 1324870 URL: http://svn.apache.org/viewvc?rev=1324870&view=rev Log: WW-3059 Changes logic to set encoding for XMLHttpRequest type Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1324870&r1=1324869&r2=1324870&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Wed Apr 11 17:12:35 2012 @@ -679,6 +679,10 @@ public class Dispatcher { if (defaultEncoding != null) { encoding = defaultEncoding; } +// check for Ajax request to use UTF-8 encoding strictly http://www.w3.org/TR/XMLHttpRequest/#the-send-method +if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) { +encoding = "utf-8"; +} Locale locale = null; if (defaultLocale != null) { Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java?rev=1324870&r1=1324869&r2=1324870&view=diff == --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java Wed Apr 11 17:12:35 2012 @@ -21,28 +21,8 @@ package org.apache.struts2.dispatcher; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.StrutsConstants; -import org.apache.struts2.StrutsTestCase; -import org.apache.struts2.dispatcher.FilterDispatcherTest.InnerActionMapper; -import org.apache.struts2.dispatcher.FilterDispatcherTest.InnerDestroyableObjectFactory; -import org.apache.struts2.dispatcher.FilterDispatcherTest.InnerDispatcher; -import org.springframework.mock.web.MockFilterConfig; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.mock.web.MockServletContext; - import com.mockobjects.dynamic.C; import com.mockobjects.dynamic.Mock; -import com.mockobjects.servlet.MockFilterChain; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.config.ConfigurationManager; @@ -50,11 +30,20 @@ import com.opensymphony.xwork2.config.en import com.opensymphony.xwork2.config.entities.InterceptorStackConfig; import com.opensymphony.xwork2.config.entities.PackageConfig; import com.opensymphony.xwork2.inject.Container; -import com.opensymphony.xwork2.inject.ContainerBuilder; -import com.opensymphony.xwork2.inject.Context; -import com.opensymphony.xwork2.inject.Factory; import com.opensymphony.xwork2.interceptor.Interceptor; import com.opensymphony.xwork2.util.LocalizedTextUtil; +import org.apache.struts2.StrutsConstants; +import org.apache.struts2.StrutsTestCase; +import org.apache.struts2.dispatcher.FilterDispatcherTest.InnerDestroyableObjectFactory; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.mock.web.MockServletContext; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; /** * Test case for Dispatcher. @@ -89,6 +78,23 @@ public class DispatcherTest extends Stru assertEquals(req.getCharacterEncoding(), "utf-8"); } +public void testEncodingForXMLHttpRequest() throws Exception { +// given +MockHttpServletRequest req = new MockHttpServletRequest(); +req.addHeader("X-Requested-With", "XMLHttpRequest"); +HttpServletResponse res = new MockHttpServletResponse(); + +Dispatcher du = initDispatcher(new HashMap() {{ +put(StrutsConstants.STRUTS_I18N_ENCODING, "latin-2"); +}}); + +// when +du.prepare(req, res); + +// then +assertEquals(req.getCharacterEncoding(), "utf-8"); +} + public void testPrepareSetEncodingPropertyWithMultipartRequest() throws
svn commit: r1324871 - /struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java
Author: lukaszlenart Date: Wed Apr 11 17:13:42 2012 New Revision: 1324871 URL: http://svn.apache.org/viewvc?rev=1324871&view=rev Log: WW-3431 Solves problem with array initialization Modified: struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java Modified: struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java?rev=1324871&r1=1324870&r2=1324871&view=diff == --- struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java (original) +++ struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java Wed Apr 11 17:13:42 2012 @@ -170,7 +170,7 @@ public class OValValidationInterceptor e //perform validation List violations = validator.validate(action); -addValidationErrors(violations.toArray(new ConstraintViolation[0]), action, valueStack, null); +addValidationErrors(violations.toArray(new ConstraintViolation[violations.size()]), action, valueStack, null); } private void addValidationErrors(ConstraintViolation[] violations, Object action, ValueStack valueStack, String parentFieldname) {
svn commit: r1324888 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/Dispatcher.java test/java/org/apache/struts2/dispatcher/DispatcherTest.java
Author: lukaszlenart Date: Wed Apr 11 17:41:06 2012 New Revision: 1324888 URL: http://svn.apache.org/viewvc?rev=1324888&view=rev Log: WW-3796 Changes logic to set encoding on HttpServletRequest if differs from configured Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1324888&r1=1324887&r2=1324888&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Wed Apr 11 17:41:06 2012 @@ -690,11 +690,7 @@ public class Dispatcher { } if (encoding != null) { -try { -request.setCharacterEncoding(encoding); -} catch (Exception e) { -LOG.error("Error setting character encoding to '" + encoding + "' - ignoring.", e); -} +applyEncoding(request, encoding); } if (locale != null) { @@ -706,6 +702,18 @@ public class Dispatcher { } } +private void applyEncoding(HttpServletRequest request, String encoding) { +try { +if (!encoding.equals(request.getCharacterEncoding())) { +// if the encoding is already correctly set and the parameters have been already read +// do not try to set encoding because it is useless and will cause an error +request.setCharacterEncoding(encoding); +} +} catch (Exception e) { +LOG.error("Error setting character encoding to '" + encoding + "' - ignoring.", e); +} +} + /** * Wrap and return the given request or return the original request object. * Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java?rev=1324888&r1=1324887&r2=1324888&view=diff == --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java Wed Apr 11 17:41:06 2012 @@ -70,7 +70,7 @@ public class DispatcherTest extends Stru HttpServletRequest req = new MockHttpServletRequest(); HttpServletResponse res = new MockHttpServletResponse(); -Dispatcher du = initDispatcher(new HashMap() {{ +Dispatcher du = initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_I18N_ENCODING, "utf-8"); }}); du.prepare(req, res); @@ -82,9 +82,10 @@ public class DispatcherTest extends Stru // given MockHttpServletRequest req = new MockHttpServletRequest(); req.addHeader("X-Requested-With", "XMLHttpRequest"); +req.setCharacterEncoding("utf-8"); HttpServletResponse res = new MockHttpServletResponse(); -Dispatcher du = initDispatcher(new HashMap() {{ +Dispatcher du = initDispatcher(new HashMap() {{ put(StrutsConstants.STRUTS_I18N_ENCODING, "latin-2"); }}); @@ -95,12 +96,36 @@ public class DispatcherTest extends Stru assertEquals(req.getCharacterEncoding(), "utf-8"); } +public void testSetEncodingIfDiffer() throws Exception { +// given +Mock mock = new Mock(HttpServletRequest.class); +mock.expectAndReturn("getCharacterEncoding", "utf-8"); +mock.expectAndReturn("getHeader", "X-Requested-With", ""); +mock.expectAndReturn("getLocale", Locale.getDefault()); +mock.expectAndReturn("getCharacterEncoding", "utf-8"); +HttpServletRequest req = (HttpServletRequest) mock.proxy(); +HttpServletResponse res = new MockHttpServletResponse(); + +Dispatcher du = initDispatcher(new HashMap() {{ +put(StrutsConstants.STRUTS_I18N_ENCODING, "utf-8"); +}}); + + +// when +du.prepare(req, res); + +// then + +assertEquals(req.getCharacterEncoding(), "utf-8"); +mock.verify(); +} + public void testPrepareSetEncodingPropertyWithMultipartRequest() throws Exception { MockHttpServletRequest req = new MockHttpServletRequest(); MockHttpServletResponse res = new MockHttpServletResponse(); req.setContentType("multipart/form-data"); -Dispatcher du = initDispatcher(new HashMap() {{ +Dispatcher du = initDispatch
svn commit: r1324893 - /struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
Author: lukaszlenart Date: Wed Apr 11 17:49:35 2012 New Revision: 1324893 URL: http://svn.apache.org/viewvc?rev=1324893&view=rev Log: WW-3442 adds additional initialisation of HttpSession Modified: struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java Modified: struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java?rev=1324893&r1=1324892&r2=1324893&view=diff == --- struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java (original) +++ struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java Wed Apr 11 17:49:35 2012 @@ -36,6 +36,7 @@ import org.apache.struts2.util.StrutsTes import org.springframework.core.io.DefaultResourceLoader; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.mock.web.MockHttpSession; import org.springframework.mock.web.MockPageContext; import org.springframework.mock.web.MockServletContext; @@ -159,9 +160,9 @@ public abstract class StrutsTestCase ext } protected void initSession(ActionContext actionContext) { -Map session = actionContext.getSession(); -if (session == null) { +if (actionContext.getSession() == null) { actionContext.setSession(new HashMap()); +request.setSession(new MockHttpSession(servletContext)); } }
[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 - HTTP4 edited by mazzag (09:52 PM) https://cwiki.apache.org/confluence/display/CAMEL/HTTP4 Camel 2.10.0 Release edited by davsclaus (05:49 AM) https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.10.0+Release FOP edited by davsclaus (04:52 AM) https://cwiki.apache.org/confluence/display/CAMEL/FOP Blueprint Testing edited by davsclaus (04:41 AM) https://cwiki.apache.org/confluence/display/CAMEL/Blueprint+Testing Karaf edited by davsclaus (03:09 AM) https://cwiki.apache.org/confluence/display/CAMEL/Karaf Apache Connectors Framework (https://cwiki.apache.org/confluence/display/CONNECTORS) Comments https://cwiki.apache.org/confluence/display/CONNECTORS/FAQ (3) Apache CXF Documentation (https://cwiki.apache.org/confluence/display/CXF20DOC) Pages - WSDL to Java edited by mazzag (10:38 AM) https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Java Apache Flex (https://cwiki.apache.org/confluence/display/FLEX) Comments https://cwiki.apache.org/confluence/display/FLEX/Status (1) Apache Hive (https://cwiki.apache.org/confluence/display/Hive) Pages - LanguageManual SortBy edited by bro...@gmail.com (07:36 PM) https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy Apache Kafka (https://cwiki.apache.org/confluence/display/KAFKA) Pages - Kafka replication detailed design V2 edited by nehanarkhede (01:39 PM) https://cwiki.apache.org/confluence/display/KAFKA/Kafka+replication+detailed+design+V2 Apache Ode (https://cwiki.apache.org/confluence/display/ODExSITE) Pages - Board Report 2012-04 created by vanto (05:26 AM) https://cwiki.apache.org/confluence/display/ODExSITE/Board+Report+2012-04 Board Reports edited by vanto (05:07 AM) https://cwiki.apache.org/confluence/display/ODExSITE/Board+Reports OODT (https://cwiki.apache.org/confluence/display/OODT) Pages - Workflow Manager Help edited by michael.caya...@jpl.nasa.gov (11:17 AM) https://cwiki.apache.org/confluence/display/OODT/Workflow+Manager+Help Apache OpenOffice Community (https://cwiki.apache.org/confluence/display/OOOUSERS) Pages - Bundled Writing Aids edited by af (02:48 AM) https://cwiki.apache.org/confluence/display/OOOUSERS/Bundled+Writing+Aids Apache Openmeetings (https://cwiki.apache.org/confluence/display/OPENMEETINGS) Pages - Manuals user OpenMeetings various edited by greenes (05:06 AM) https://cwiki.apache.org/confluence/display/OPENMEETINGS/Manuals+user+OpenMeetings+various Tutoriales en espaƱol relacionados con OpenMeetings edited by greenes (04:20 AM) https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27837303 Apache OpenNLP (https://cwiki.apache.org/confluence/display/OPENNLP) Pages - Articles and Blogs edited by jbaldrid (10:06 AM) https://cwiki.apache.org/confluence/display/OPENNLP/Articles+and+Blogs Apache Qpid (https://cwiki.apache.org/confluence/display/qpid) Pages - 0.16 Release edited by justi9 (04:55 PM) https://cwiki.apache.org/confluence/display/qpid/0.16+Release Apache Syncope (https://cwiki.apache.org/confluence/display/SYNCOPE) Pages - Roadmap created by ilgrosso (06:33 AM) https://cwiki.apache.org/confluence/display/SYNCOPE/Roadmap Releases edited by ilgrosso (05:23 AM) https://cwiki.apache.org/confluence/display/SYNCOPE/Releases Ritornello edited by ilgrosso (05:23 AM) https://cwiki.apache.org/confluence/display/SYNCOPE/Ritornello Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action