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,