You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2013/10/25 04:44:36 UTC
svn commit: r1535613 - in /myfaces/core/trunk: ./
api/src/main/java/javax/faces/component/
api/src/test/java/javax/faces/component/ impl/
impl/src/main/java/org/apache/myfaces/application/jsp/
impl/src/main/java/org/apache/myfaces/application/viewstate...
Author: lu4242
Date: Fri Oct 25 02:44:35 2013
New Revision: 1535613
URL: http://svn.apache.org/r1535613
Log:
merge revisions 1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237 from 2.1.x branch
Modified:
myfaces/core/trunk/ (props changed)
myfaces/core/trunk/api/src/main/java/javax/faces/component/UIData.java
myfaces/core/trunk/api/src/main/java/javax/faces/component/UISelectOne.java
myfaces/core/trunk/api/src/test/java/javax/faces/component/UIComponentAttributesTest.java
myfaces/core/trunk/impl/pom.xml
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheImpl.java (props changed)
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheImpl.java (props changed)
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/SessionIdGenerator.java (props changed)
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheFactoryImpl.java (props changed)
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheUtils.java (props changed)
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
myfaces/core/trunk/impl/src/main/resources/META-INF/faces-config20.vm (props changed)
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheTest.java (props changed)
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheTest.java (props changed)
myfaces/core/trunk/parent/pom.xml (props changed)
myfaces/core/trunk/parent/src/ (props changed)
myfaces/core/trunk/pom.xml
myfaces/core/trunk/shared/ (props changed)
myfaces/core/trunk/shared-public/pom.xml (props changed)
myfaces/core/trunk/shared-public/src/ (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/AttachedDeltaWrapper.java (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ComponentUtils.java (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/DebugUtils.java (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/RendererUtils.java (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/TagUtils.java (props changed)
myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/renderkit/ (props changed)
myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java
myfaces/core/trunk/shared/src/test/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoderTest.java
Propchange: myfaces/core/trunk/
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/UIData.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIData.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/UIData.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/UIData.java Fri Oct 25 02:44:35 2013
@@ -2204,11 +2204,14 @@ public class UIData extends UIComponentB
{
return true;
}
- for (UIComponent facet : child.getFacets().values())
+ if (child.getFacetCount() > 0)
{
- if (facet.visitTree(context, callback))
+ for (UIComponent facet : child.getFacets().values())
{
- return true;
+ if (facet.visitTree(context, callback))
+ {
+ return true;
+ }
}
}
}
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/UISelectOne.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UISelectOne.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/UISelectOne.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/UISelectOne.java Fri Oct 25 02:44:35 2013
@@ -18,8 +18,12 @@
*/
package javax.faces.component;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
+import javax.faces.model.SelectItem;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFJspProperty;
@@ -75,14 +79,21 @@ public class UISelectOne extends UIInput
// and if required is true it must not match an option with noSelectionOption set to true (since 2.0)
Converter converter = getConverter();
- if (_SelectItemsUtil.matchValue(context, this, value, new _SelectItemsIterator(this, context), converter))
+ // Since the iterator is used twice, it has sense to traverse it only once.
+ Collection<SelectItem> items = new ArrayList<SelectItem>();
+ for (Iterator<SelectItem> iter = new _SelectItemsIterator(this, context); iter.hasNext();)
+ {
+ items.add(iter.next());
+ }
+
+ if (_SelectItemsUtil.matchValue(context, this, value, items.iterator(), converter))
{
if (! this.isRequired())
{
return; // Matched & Required false, so return ok.
}
if (! _SelectItemsUtil.isNoSelectionOption(context, this, value,
- new _SelectItemsIterator(this, context), converter))
+ items.iterator(), converter))
{
return; // Matched & Required true & No-selection did NOT match, so return ok.
}
Modified: myfaces/core/trunk/api/src/test/java/javax/faces/component/UIComponentAttributesTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/test/java/javax/faces/component/UIComponentAttributesTest.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/test/java/javax/faces/component/UIComponentAttributesTest.java (original)
+++ myfaces/core/trunk/api/src/test/java/javax/faces/component/UIComponentAttributesTest.java Fri Oct 25 02:44:35 2013
@@ -64,4 +64,4 @@ public class UIComponentAttributesTest e
// expected
}
}*/
-}
\ No newline at end of file
+}
Modified: myfaces/core/trunk/impl/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/pom.xml?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/impl/pom.xml (original)
+++ myfaces/core/trunk/impl/pom.xml Fri Oct 25 02:44:35 2013
@@ -79,6 +79,7 @@
<!-- services files are trivial config files with no comments -->
<exclude>src/test/resources/META-INF/services/org.apache.myfaces.config.annotation.LifecycleProvider</exclude>
<exclude>src/main/resources/META-INF/services/org.apache.myfaces.config.annotation.LifecycleProvider</exclude>
+ <exclude>src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer</exclude>
<!-- these jsf.js files are trivial empty placeholders -->
<exclude>src/test/resources/org/apache/myfaces/view/facelets/tag/composite/javax.faces/jsf.js</exclude>
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java Fri Oct 25 02:44:35 2013
@@ -298,7 +298,21 @@ public class JspViewHandlerImpl extends
{
if (path.length() > 0 && path.charAt(0) == '/')
{
- return facesContext.getExternalContext().getRequestContextPath() + path;
+ String contextPath = facesContext.getExternalContext().getRequestContextPath();
+ if (contextPath == null)
+ {
+ return path;
+ }
+ else if (contextPath.length() == 1 && contextPath.charAt(0) == '/')
+ {
+ // If the context path is root, it is not necessary to append it, otherwise
+ // and extra '/' will be set.
+ return path;
+ }
+ else
+ {
+ return contextPath + path;
+ }
}
return path;
Propchange: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheImpl.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheImpl.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheImpl.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheImpl.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/SessionIdGenerator.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/application/viewstate/SessionIdGenerator.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheFactoryImpl.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheFactoryImpl.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheUtils.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/application/viewstate/StateCacheUtils.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java Fri Oct 25 02:44:35 2013
@@ -354,6 +354,9 @@ public class DefaultFaceletsStateManagem
if (state != null && state[1] != null)
{
states = (Map<String, Object>) state[1];
+ //Save the last unique id counter key in UIViewRoot
+ Long lastUniqueIdCounter = (Long) view.getAttributes().get(UNIQUE_ID_COUNTER_KEY);
+
// Visit the children and restore their state.
boolean emptyState = false;
boolean containsFaceletState = states.containsKey(
@@ -396,6 +399,18 @@ public class DefaultFaceletsStateManagem
{
view.getAttributes().put(ComponentSupport.FACELET_STATE_INSTANCE, faceletViewState);
}
+ if (lastUniqueIdCounter != null)
+ {
+ Long newUniqueIdCounter = (Long) view.getAttributes().get(UNIQUE_ID_COUNTER_KEY);
+ if (newUniqueIdCounter != null &&
+ lastUniqueIdCounter.longValue() > newUniqueIdCounter.longValue())
+ {
+ // The unique counter was restored by a side effect of
+ // restoreState() over UIViewRoot with a lower count,
+ // to avoid a component duplicate id exception we need to fix the count.
+ view.getAttributes().put(UNIQUE_ID_COUNTER_KEY, lastUniqueIdCounter);
+ }
+ }
handleDynamicAddedRemovedComponents(context, view, states);
}
}
Propchange: myfaces/core/trunk/impl/src/main/resources/META-INF/faces-config20.vm
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/main/resources/META-INF/faces-config20.vm:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheTest.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/test/java/org/apache/myfaces/application/viewstate/ClientSideStateCacheTest.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheTest.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/impl/src/test/java/org/apache/myfaces/application/viewstate/ServerSideStateCacheTest.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/parent/pom.xml
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/parent/pom.xml:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/parent/src/
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/parent/src:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Modified: myfaces/core/trunk/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/pom.xml?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/pom.xml (original)
+++ myfaces/core/trunk/pom.xml Fri Oct 25 02:44:35 2013
@@ -80,6 +80,19 @@
</plugins>
</pluginManagement>
<plugins>
+
+ <!-- license checker needs to exclude some kinds of files -->
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <!-- This file is created during a release and needs no licensing text -->
+ <exclude>DEPENDENCIES</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
Propchange: myfaces/core/trunk/shared/
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/pom.xml
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/pom.xml:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/AttachedDeltaWrapper.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/AttachedDeltaWrapper.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ComponentUtils.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/ComponentUtils.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/DebugUtils.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/DebugUtils.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/RendererUtils.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/RendererUtils.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/TagUtils.java
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/TagUtils.java:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Propchange: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/renderkit/
------------------------------------------------------------------------------
Merged /myfaces/core/branches/2.1.x/shared-public/src/main/java/org/apache/myfaces/shared/util/renderkit:r1470740,1470769,1481616,1486734,1487195,1488257,1488269,1491839,1505866,1518438,1518452,1518455,1523314,1523353,1523365,1523370,1523379,1525533,1525535,1525863,1526422,1531547,1532548,1532563,1532588,1532605,1532836,1533085,1533114,1533175,1533192,1533230,1533291,1533536,1534237
Modified: myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java (original)
+++ myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java Fri Oct 25 02:44:35 2013
@@ -200,7 +200,12 @@ public class DefaultViewHandlerSupport i
String contextPath = externalContext.getRequestContextPath();
//StringBuilder builder = new StringBuilder(contextPath);
StringBuilder builder = SharedStringBuilder.get(context, VIEW_HANDLER_SUPPORT_SB);
- builder.append(contextPath);
+ // If the context path is root, it is not necessary to append it, otherwise
+ // and extra '/' will be set.
+ if (contextPath != null && !(contextPath.length() == 1 && contextPath.charAt(0) == '/') )
+ {
+ builder.append(contextPath);
+ }
if (mapping != null)
{
if (mapping.isExtensionMapping())
Modified: myfaces/core/trunk/shared/src/test/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoderTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared/src/test/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoderTest.java?rev=1535613&r1=1535612&r2=1535613&view=diff
==============================================================================
--- myfaces/core/trunk/shared/src/test/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoderTest.java (original)
+++ myfaces/core/trunk/shared/src/test/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoderTest.java Fri Oct 25 02:44:35 2013
@@ -271,6 +271,27 @@ public class HTMLEncoderTest extends Abs
}
+ public void testUsAsciiEscapedCharactersBeforeQueryLowerCase() throws Exception
+ {
+ // Escape
+ // - From %00 to %20,
+ // - <"> %22, "%" %25
+ // - "<" %3C, ">" %3E,
+ // - "\" %5C, "^" %5E, "`" %60
+ // - "{" %7B, "|" %7C, "}" %7D
+ // - From %7F ad infinitum
+ String cad1 = "?key=\"%<>\\`{|}^\n "; //Omit %
+ String cad2 = "?key=%22%25%3c%3e%5c%60%7b%7c%7d%5e%0a%20";
+ String cad3 = HTMLEncoder.encodeURIAtributte(cad1,"UTF-8");
+ assertEquals(cad2.substring(0,5) + cad2.substring(5).toUpperCase(), cad3);
+
+ String cad4 = "\"%<>\\`{|}^\n ";
+ String cad5 = "%22%25%3c%3e%5c%60%7b%7c%7d%5e%0a%20";
+ String cad6 = HTMLEncoder.encodeURIAtributte(cad4,"UTF-8");
+ assertEquals(cad5.substring(0,5) + cad5.substring(5).toUpperCase(), cad6);
+
+ }
+
public void testWriteNonUsAsciiOnURIAttribute() throws Exception
{
// Character ü in ISO-8859-1 is %FC but on UTF-8 is %C3%BC. In this case,