You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2005/12/03 02:09:10 UTC
svn commit: r351865 -
/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java
Author: baranda
Date: Fri Dec 2 17:09:07 2005
New Revision: 351865
URL: http://svn.apache.org/viewcvs?rev=351865&view=rev
Log:
Fixes exception when using converters in UISelectMany components. Now it is possible to pass an array of values of any type to the selectMany value attribute. Fixes MYFACES-154,669 and 852
Modified:
myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java
Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java?rev=351865&r1=351864&r2=351865&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/_SharedRendererUtils.java Fri Dec 2 17:09:07 2005
@@ -83,14 +83,6 @@
ValueBinding vb = component.getValueBinding("value");
Class valueType = null;
Class arrayComponentType = null;
- if (vb != null)
- {
- valueType = vb.getType(facesContext);
- if (valueType != null && valueType.isArray())
- {
- arrayComponentType = valueType.getComponentType();
- }
- }
Converter converter = component.getConverter();
if (converter == null)
@@ -136,6 +128,19 @@
}
// Now, we have a converter...
+ // We determine the type of the component array after converting one of it's elements
+ if (vb != null)
+ {
+ valueType = vb.getType(facesContext);
+ if (valueType != null && valueType.isArray())
+ {
+ if (submittedValue.length > 0)
+ {
+ arrayComponentType = converter.getAsObject(facesContext, component, submittedValue[0]).getClass();
+ }
+ }
+ }
+
if (valueType == null)
{
// ...but have no idea of expected type