Author: gvanmatre Date: Mon Apr 17 20:19:46 2006 New Revision: 394828 URL: http://svn.apache.org/viewcvs?rev=394828&view=rev Log: Fix for bug 39294 reported by Simon Matic Langford. I narrowed the scope from the general category of renderer's in command family to the Link and Button renderer type's that are specified in the JSF runtime and have know behavior.
Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java?rev=394828&r1=394827&r2=394828&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java Mon Apr 17 20:19:46 2006 @@ -35,6 +35,9 @@ * The majority of the implementation is passed on the the original * <code>RenderKit</code> but requests for renderers registered with the * "javax.faces.Command" and "javax.faces.Input" families are decorated. + * Only renderers in the "javax.faces.Command" family of types + * "javax.faces.Link" and "javax.faces.Button" are considered. These are + * renderers from the vanilla JSF runtime that have predictable behavior. * The wrapper adds special behavior for the * [EMAIL PROTECTED] org.apache.shale.validator.CommonsValidator} validator and * [EMAIL PROTECTED] org.apache.shale.component.ValidatorScript} component.</p> @@ -44,6 +47,9 @@ private static String COMMAND_FAMILY = "javax.faces.Command"; private static String INPUT_FAMILY = "javax.faces.Input"; + private static String COMMAND_LINK_TYPE = "javax.faces.Link"; + private static String COMMAND_BUTTON_TYPE = "javax.faces.Button"; + /** * <p>The original RenderKit.</p> @@ -65,14 +71,17 @@ /** * <p>If the component family is not "javax.faces.Command" or * "javax.faces.Input", the <code>defaultRenderKit</code> handles the - * request. If the family is "javax.faces.Command", the default - * renderer is decorated with [EMAIL PROTECTED] org.apache.shale.renderer.ValidatorCommandRenderer}. + * request. If the family is "javax.faces.Command", and the renderer type + * is "javax.faces.Link" or "javax.faces.Button" the default + * renderer is decorated with [EMAIL PROTECTED] org.apache.shale.renderer.ValidatorCommandRenderer}. * If the component family is "javax.faces.Input", the default * renderer is decorated with [EMAIL PROTECTED] org.apache.shale.renderer.ValidatorInputRenderer}. */ public Renderer getRenderer(String componentFamily, String rendererType) { Renderer target = defaultRenderKit.getRenderer(componentFamily, rendererType); - if (componentFamily.equals(COMMAND_FAMILY)) { + if (componentFamily.equals(COMMAND_FAMILY) && + (rendererType.equals(COMMAND_LINK_TYPE) || + rendererType.equals(COMMAND_BUTTON_TYPE))) { if (!(target instanceof ValidatorCommandRenderer)) { target = new ValidatorCommandRenderer(target); addRenderer(componentFamily, rendererType, target); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]