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 2015/11/23 20:12:37 UTC

svn commit: r1715923 - in /myfaces/shared/trunk/core: ./ src/main/java/org/apache/myfaces/shared/application/ src/main/java/org/apache/myfaces/shared/config/ src/main/java/org/apache/myfaces/shared/renderkit/ src/main/java/org/apache/myfaces/shared/ren...

Author: lu4242
Date: Mon Nov 23 19:12:37 2015
New Revision: 1715923

URL: http://svn.apache.org/viewvc?rev=1715923&view=rev
Log:
update shared for 2.2.9 release

Modified:
    myfaces/shared/trunk/core/pom.xml
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/config/MyfacesConfig.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/ContentTypeUtils.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlGridRendererBase.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlJavaScriptUtils.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HttpPartWrapper.java
    myfaces/shared/trunk/core/src/main/resources/META-INF/myfaces-metadata.xml

Modified: myfaces/shared/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/pom.xml?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/pom.xml (original)
+++ myfaces/shared/trunk/core/pom.xml Mon Nov 23 19:12:37 2015
@@ -143,7 +143,7 @@
     <profile>
       <id>synch-myfaces-impl-shared</id>
       <properties>
-        <myfaces.impl.shared.version>2.2.8-SNAPSHOT</myfaces.impl.shared.version>
+        <myfaces.impl.shared.version>2.2.9-SNAPSHOT</myfaces.impl.shared.version>
       </properties>
       <activation>
         <property>

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/application/DefaultViewHandlerSupport.java Mon Nov 23 19:12:37 2015
@@ -237,9 +237,9 @@ public class DefaultViewHandlerSupport i
                     {
                         builder.append(viewId);
                     }
-                    else if(viewId.lastIndexOf(".") != -1 )
+                    else if(viewId.lastIndexOf('.') != -1 )
                     {
-                        builder.append(viewId.substring(0,viewId.lastIndexOf(".")));
+                        builder.append(viewId.substring(0, viewId.lastIndexOf('.')));
                         builder.append(contextSuffixes[0]);
                     }
                     else

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/config/MyfacesConfig.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/config/MyfacesConfig.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/config/MyfacesConfig.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/config/MyfacesConfig.java Mon Nov 23 19:12:37 2015
@@ -539,6 +539,13 @@ public class MyfacesConfig
     static final String INIT_PARAM_NUMBER_OF_FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION = 
             "org.apache.myfaces.FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION";
     
+    /**
+     * This parameter specifies whether or not the ImportHandler will be supported
+     */
+    @JSFWebConfigParam(since="2.2.9", defaultValue="false", expectedValues="true,false", group="EL")
+    protected static final String SUPPORT_EL_3_IMPORT_HANDLER = "org.apache.myfaces.SUPPORT_EL_3_IMPORT_HANDLER";
+    public final static boolean SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT = false;
+
     private boolean _prettyHtml;
     private boolean _detectJavascript;
     private boolean _allowJavascript;
@@ -581,6 +588,7 @@ public class MyfacesConfig
     private Integer _numberOfSequentialViewsInSession;
     private Integer _numberOfFlashTokensInSession;
     private Integer _numberOfFacesFlowClientWindowIdsInSession;
+    private boolean _supportEL3ImportHandler;
 
     private static final boolean TOMAHAWK_AVAILABLE;
     private static final boolean MYFACES_IMPL_AVAILABLE;
@@ -693,6 +701,7 @@ public class MyfacesConfig
         setNumberOfFlashTokensInSession(
                 (INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT / 
                         INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT)+1);
+        setSupportEL3ImportHandler(SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT);                        
     }
 
     private static MyfacesConfig createAndInitializeMyFacesConfig(ExternalContext extCtx)
@@ -888,6 +897,10 @@ public class MyfacesConfig
                         extCtx, 
                         INIT_PARAM_NUMBER_OF_FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION, 
                         numberOfFlashTokensInSessionDefault));
+                        
+        myfacesConfig.setSupportEL3ImportHandler(WebConfigParamUtils.getBooleanInitParameter(extCtx, 
+                       SUPPORT_EL_3_IMPORT_HANDLER, 
+                       SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT));                        
         
         if (TOMAHAWK_AVAILABLE)
         {
@@ -1540,4 +1553,20 @@ public class MyfacesConfig
     {
         this._numberOfFacesFlowClientWindowIdsInSession = numberOfFacesFlowClientWindowIdsInSession;
     }
+    
+    /**
+     * @return the _supportEL3ImportHandler
+     */
+    public boolean isSupportEL3ImportHandler()
+    {
+        return _supportEL3ImportHandler;
+    }
+    
+    /**
+     * @param supportEL3ImportHandler the _supportEL3ImportHandler to set
+     */
+    public void setSupportEL3ImportHandler(boolean supportEL3ImportHandler)
+    {
+        this._supportEL3ImportHandler = supportEL3ImportHandler;
+    }
 }

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/ContentTypeUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/ContentTypeUtils.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/ContentTypeUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/ContentTypeUtils.java Mon Nov 23 19:12:37 2015
@@ -101,7 +101,7 @@ public class ContentTypeUtils
         String[] splittedArray = StringUtils.splitShortString(contentTypeListString, ',');
         for (int i = 0; i < splittedArray.length; i++)
         {
-            int semicolonIndex = splittedArray[i].indexOf(";");
+            int semicolonIndex = splittedArray[i].indexOf(';');
             if (semicolonIndex != -1)
             {
                 splittedArray[i] = splittedArray[i].substring(0,semicolonIndex);

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java Mon Nov 23 19:12:37 2015
@@ -204,7 +204,7 @@ public class HtmlButtonRendererBase
                         uiComponent, behaviors, facesContext, writer, formInfo, validParams);
                 if (onClick.length() != 0)
                 {
-                    writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
+                    writer.writeAttribute(HTML.ONCLICK_ATTR, onClick, null);
                 }
             }
             else
@@ -218,7 +218,7 @@ public class HtmlButtonRendererBase
                         commandOnclick , null);
                 if (onClick.length() != 0)
                 {
-                    writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
+                    writer.writeAttribute(HTML.ONCLICK_ATTR, onClick, null);
                 }
             }
             

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlGridRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlGridRendererBase.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlGridRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlGridRendererBase.java Mon Nov 23 19:12:37 2015
@@ -293,7 +293,7 @@ public class HtmlGridRendererBase
                 bodyrows = new Integer[bodyrowsString.length];
                 for(int i = 0; i < bodyrowsString.length; i++) 
                 {
-                    bodyrows[i] = new Integer(bodyrowsString[i]);
+                    bodyrows[i] = Integer.valueOf(bodyrowsString[i]);
                 }
                 
             }

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlJavaScriptUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlJavaScriptUtils.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlJavaScriptUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlJavaScriptUtils.java Mon Nov 23 19:12:37 2015
@@ -121,223 +121,6 @@ public final class HtmlJavaScriptUtils
             writer.endElement(HTML.SCRIPT_ELEM);
         }
     }
-    /**
-     * @param facesContext
-     * @param context
-     * @param autoScroll
-     */
-    private static void prepareScript(FacesContext facesContext,
-            ScriptContext context, boolean autoScroll)
-    {
-        // MYFACES-3919 remember idcl separator char is special and always should be ':',
-        // because it should be hardcoded into the js file.
-        final char idclSeparatorChar = ':';
-        context.prettyLine();
-
-        //render a function to create a hidden input, if it doesn't exist
-        context.append("function ");
-        context.append(SET_HIDDEN_INPUT_FN_NAME).append(
-                "(formname, name, value)");
-        context.append("{");
-        context.append("var form = document.forms[formname];");
-        context.prettyLine();
-        context.append("if (typeof form == 'undefined')");
-        context.append("{");
-        context.append("form = document.getElementById(formname);");
-        context.append("}");
-        context.prettyLine();
-        context.append("if(typeof form.elements[name]!='undefined' && "+
-                "(form.elements[name].nodeName=='INPUT' || form.elements[name].nodeName=='input'))");
-        context.append("{");
-        context.append("form.elements[name].value=value;");
-        context.append("}");
-        context.append("else");
-        context.append("{");
-        context.append("var newInput = document.createElement('input');");
-        context.prettyLine();
-        context.append("newInput.setAttribute('type','hidden');");
-        context.prettyLine();
-        context.append("newInput.setAttribute('id',name);"); // IE hack; See MYFACES-1805
-        context.prettyLine();
-        context.append("newInput.setAttribute('name',name);");
-        context.prettyLine();
-        context.append("newInput.setAttribute('value',value);");
-        context.prettyLine();
-        context.append("form.appendChild(newInput);");
-        context.append("}");
-
-        context.append("}");
-
-        context.prettyLine();
-
-        context.prettyLine();
-
-        //render a function to clear a hidden input, if it exists        
-        context.append("function ");
-        context.append(CLEAR_HIDDEN_INPUT_FN_NAME).append(
-                "(formname, name, value)");
-        context.append("{");
-        context.append("var form = document.forms[formname];");
-        context.prettyLine();
-        context.append("if (typeof form == 'undefined')");
-        context.append("{");
-        context.append("form = document.getElementById(formname);");
-        context.append("}");
-        context.prettyLine();
-        context.append("var hInput = form.elements[name];");
-        context.prettyLine();
-        context.append("if(typeof hInput !='undefined')");
-        context.append("{");
-        //context.append("form.elements[name].value=null;");
-        context.append("form.removeChild(hInput);");
-        context.append("}");
-
-        context.append("}");
-
-        context.prettyLine();
-
-        context.append("function ");
-        context.append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME).append(
-                "(formName, linkId, target, params)");
-        context.append("{");
-
-        //call the script to clear the form (clearFormHiddenParams_<formName>) method - 
-        //optionally, only necessary for IE5.5.
-        //todo: if IE5.5. is ever desupported, we can get rid of this and instead rely on 
-        //the last part of this script to
-        //clear the parameters
-        appendClearHiddenCommandFormParamsFunctionCall(
-                context, null);
-
-        if (autoScroll)
-        {
-            appendAutoScrollAssignment(facesContext, context, null);
-        }
-
-        context.prettyLine();
-
-        context.append("var form = document.forms[formName];");
-        context.prettyLine();
-        context.append("if (typeof form == 'undefined')");
-        context.append("{");
-        context.append("form = document.getElementById(formName);");
-        context.append("}");
-        context.prettyLine();
-
-        if (JavascriptUtils.isSaveFormSubmitLinkIE(FacesContext
-                .getCurrentInstance().getExternalContext()))
-        {
-            context.append("var agentString = navigator.userAgent.toLowerCase();");
-            context.prettyLine();
-            //context.append("var isIE = false;");
-            context.prettyLine();
-            context.append("if (agentString.indexOf('msie') != -1)");
-
-            context.append("{");
-            context.append("if (!(agentString.indexOf('ppc') != -1 &&"+
-                    " agentString.indexOf('windows ce') != -1 && version >= 4.0))");
-            context.append("{");
-            context.append("window.external.AutoCompleteSaveForm(form);");
-            //        context.append("isIE = false;");
-            context.append("}");
-            //        context.append("else");
-            //        context.append("{");
-            //        context.append("isIE = true;");
-            //        context.prettyLine();
-            //        context.append("}");
-
-            context.append("}");
-
-            context.prettyLine();
-        }
-        //set the target (and save it). This should be done always, 
-        //and the default value of target is always valid.
-        context.append("var oldTarget = form.target;");
-        context.prettyLine();
-        context.append("if(target != null)");
-        context.append("{");
-        context.prettyLine();
-        context.append("form.target=target;");
-        context.append("}");
-
-        //set the submit parameters
-
-        context.append("if((typeof params!='undefined') && params != null)");
-        context.append("{");
-        context.prettyLine();
-        context.append("for(var i=0, param; (param = params[i]); i++)");
-        context.append("{");
-        context.append(SET_HIDDEN_INPUT_FN_NAME).append(
-                "(formName,param[0], param[1]);");
-        context.append("}");
-        context.append("}");
-
-        context.prettyLine();
-
-        context.append(SET_HIDDEN_INPUT_FN_NAME);
-        context.append("(formName,formName +'" + idclSeparatorChar + "'+'"
-                + HtmlRendererUtils.HIDDEN_COMMANDLINK_FIELD_NAME
-                + "',linkId);");
-
-        context.prettyLine();
-        context.prettyLine();
-
-        //do the actual submit calls
-
-        context.append("if(form.onsubmit)");
-        context.append("{");
-        context.append("var result=form.onsubmit();");
-        context.prettyLine();
-        context.append("if((typeof result=='undefined')||result)");
-        context.append("{");
-        context.append("try");
-        context.append("{");
-        context.append("form.submit();");
-        context.append("}");
-        context.append("catch(e){}");
-        context.append("}");
-        context.append("}");
-        context.append("else ");
-        context.append("{");
-        context.append("try");
-        context.append("{");
-        context.append("form.submit();");
-        context.append("}");
-        context.append("catch(e){}");
-        context.append("}");
-
-        //reset the target
-        context.prettyLine();
-        //Restore the old target, no more questions asked
-        context.append("form.target=oldTarget;");
-        context.prettyLine();
-
-        //clear the individual parameters - to make sure that even if the clear-function isn't called,
-        // the back button/resubmit functionality will still work in all browsers except IE 5.5.
-
-        context.append("if((typeof params!='undefined') && params != null)");
-        context.append("{");
-        context.prettyLine();
-        context.append("for(var i=0, param; (param = params[i]); i++)");
-        context.append("{");
-        context.append(CLEAR_HIDDEN_INPUT_FN_NAME).append(
-                "(formName,param[0], param[1]);");
-        context.append("}");
-        context.append("}");
-
-        context.prettyLine();
-
-        context.append(CLEAR_HIDDEN_INPUT_FN_NAME);
-        context.append("(formName,formName +'" + idclSeparatorChar + "'+'"
-                + HtmlRendererUtils.HIDDEN_COMMANDLINK_FIELD_NAME
-                + "',linkId);");
-
-        //return false, so that browser does not handle the click
-        context.append("return false;");
-        context.append("}");
-
-        context.prettyLineDecreaseIndent();
-    }
     
     public static void appendAutoScrollAssignment(StringBuilder onClickValue,
             String formName)

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Mon Nov 23 19:12:37 2015
@@ -231,7 +231,9 @@ public abstract class HtmlLinkRendererBa
         // h:commandLink can be rendered outside a form, but with warning (jsf 2.0 TCK)
         FormInfo formInfo = findNestingForm(component, facesContext);
         
-        if (HtmlRendererUtils.isDisabled(component) || formInfo == null)
+        boolean disabled = HtmlRendererUtils.isDisabled(component);
+        
+        if (disabled || formInfo == null)
         {
             writer.startElement(HTML.SPAN_ELEM, component);
             if (component instanceof ClientBehaviorHolder)
@@ -250,28 +252,62 @@ public abstract class HtmlLinkRendererBa
                 {
                     commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(component);
                 }
-                if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+                
+                // only render onclick if != disabled
+                if (!disabled)
                 {
-                    CommonPropertyUtils.renderEventProperties(writer, 
-                            commonPropertiesMarked, component);
-                    CommonPropertyUtils.renderFocusBlurEventProperties(writer,
-                            commonPropertiesMarked, component);
+                    if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+                    {
+                        CommonPropertyUtils.renderEventProperties(writer, 
+                                commonPropertiesMarked, component);
+                        CommonPropertyUtils.renderFocusBlurEventProperties(writer,
+                                commonPropertiesMarked, component);
+                    }
+                    else
+                    {
+                        if (isCommonEventsOptimizationEnabled(facesContext))
+                        {
+                            Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(component);
+                            CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer, 
+                                    commonPropertiesMarked, commonEventsMarked, component, behaviors);
+                            CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+                                facesContext, writer, commonPropertiesMarked, commonEventsMarked, component, behaviors);
+                        }
+                        else
+                        {
+                            HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, 
+                                    behaviors);
+                            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+                                    facesContext, writer, component, behaviors);
+                        }
+                    }
                 }
                 else
                 {
-                    if (isCommonEventsOptimizationEnabled(facesContext))
+                    if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
                     {
-                        Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(component);
-                        CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer, 
-                                commonPropertiesMarked, commonEventsMarked, component, behaviors);
-                        CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
-                            facesContext, writer, commonPropertiesMarked, commonEventsMarked, component, behaviors);
+                        CommonPropertyUtils.renderEventPropertiesWithoutOnclick(writer, 
+                                commonPropertiesMarked, component);
+                        CommonPropertyUtils.renderFocusBlurEventProperties(writer,
+                                commonPropertiesMarked, component);
                     }
                     else
                     {
-                        HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
-                        HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
-                                facesContext, writer, component, behaviors);
+                        if (isCommonEventsOptimizationEnabled(facesContext))
+                        {
+                            Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(component);
+                            CommonEventUtils.renderBehaviorizedEventHandlersWithoutOnclick(facesContext, writer, 
+                                    commonPropertiesMarked, commonEventsMarked, component, behaviors);
+                            CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+                                facesContext, writer, commonPropertiesMarked, commonEventsMarked, component, behaviors);
+                        }
+                        else
+                        {
+                            HtmlRendererUtils.renderBehaviorizedEventHandlersWithoutOnclick(facesContext, writer,
+                                    component, behaviors);
+                            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+                                    facesContext, writer, component, behaviors);
+                        }
                     }
                 }
                 if (isCommonPropertiesOptimizationEnabled(facesContext))

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Mon Nov 23 19:12:37 2015
@@ -1714,7 +1714,7 @@ public final class HtmlRendererUtils
         while (st.hasMoreTokens())
         {
             String contentType = st.nextToken().trim();
-            int semicolonIndex = contentType.indexOf(";");
+            int semicolonIndex = contentType.indexOf(';');
             if (semicolonIndex != -1)
             {
                 contentType = contentType.substring(0, semicolonIndex);

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HttpPartWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HttpPartWrapper.java?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HttpPartWrapper.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HttpPartWrapper.java Mon Nov 23 19:12:37 2015
@@ -20,7 +20,10 @@ package org.apache.myfaces.shared.render
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.Collection;
+import javax.faces.FacesException;
 import javax.faces.FacesWrapper;
 import javax.faces.component.StateHolder;
 import javax.faces.context.FacesContext;
@@ -83,6 +86,36 @@ public class HttpPartWrapper implements
     {
         getWrapped().write(fileName);
     }
+    
+    public String getSubmittedFileName()
+    {
+        Part wrapped = getWrapped();
+        try
+        {
+            Method m = wrapped.getClass().getMethod("getSubmittedFileName");
+            return (String) m.invoke(wrapped);
+        }
+        catch (NoSuchMethodException ex)
+        {
+            throw new FacesException(ex);
+        }
+        catch (SecurityException ex)
+        {
+            throw new FacesException(ex);
+        } 
+        catch (IllegalAccessException ex)
+        {
+            throw new FacesException(ex);
+        } 
+        catch (IllegalArgumentException ex)
+        {
+            throw new FacesException(ex);
+        }
+        catch (InvocationTargetException ex)
+        {
+            throw new FacesException(ex);
+        }
+    }
 
     public Object saveState(FacesContext context)
     {

Modified: myfaces/shared/trunk/core/src/main/resources/META-INF/myfaces-metadata.xml
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/resources/META-INF/myfaces-metadata.xml?rev=1715923&r1=1715922&r2=1715923&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/resources/META-INF/myfaces-metadata.xml (original)
+++ myfaces/shared/trunk/core/src/main/resources/META-INF/myfaces-metadata.xml Mon Nov 23 19:12:37 2015
@@ -826,11 +826,6 @@ href="http://java.sun.com/j2ee/javaserve
       <desc>no description</desc>
     </property>
     <property>
-      <name>value</name>
-      <className>java.lang.Object</className>
-      <desc>no description</desc>
-    </property>
-    <property>
       <name>actionExpression</name>
       <jspName>action</jspName>
       <className>javax.el.MethodExpression</className>
@@ -9115,6 +9110,17 @@ org.apache.myfaces.NUMBER_OF_SEQUENTIAL_
       <tags>performance</tags>
     </webConfigParam>
     <webConfigParam>
+      <name>org.apache.myfaces.SUPPORT_EL_3_IMPORT_HANDLER</name>
+      <fieldName>SUPPORT_EL_3_IMPORT_HANDLER</fieldName>
+      <desc>This parameter specifies whether or not the ImportHandler will be supported</desc>
+      <longDesc>This parameter specifies whether or not the ImportHandler will be supported</longDesc>
+      <defaultValue>false</defaultValue>
+      <expectedValues>true,false</expectedValues>
+      <sourceClassName>org.apache.myfaces.shared.config.MyfacesConfig</sourceClassName>
+      <since>2.2.9</since>
+      <group>EL</group>
+    </webConfigParam>
+    <webConfigParam>
       <name>org.apache.myfaces.RESOURCE_MAX_TIME_EXPIRES</name>
       <fieldName>RESOURCE_MAX_TIME_EXPIRES</fieldName>
       <desc>Set the max time in miliseconds set on the "Expires" header for a resource rendered by