You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2017/09/16 05:46:38 UTC
[myfaces-tobago] 06/10: (TOBAGO-409) in a Container
without layoutmanager breaks with ClassCastException
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to tag tobago-1.0.11
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit b04bbe9c1a24635f2130a57667d46079662e9a30
Author: Bernd Bohmann <bo...@apache.org>
AuthorDate: Wed May 23 20:36:45 2007 +0000
(TOBAGO-409) <tc:form> in a Container without layoutmanager breaks with ClassCastException
---
.../org/apache/myfaces/tobago/component/ComponentUtil.java | 10 ++++++++--
.../apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java | 10 +++++++---
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java b/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
index c7f841d..1401b9d 100644
--- a/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
+++ b/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
@@ -81,6 +81,7 @@ import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
+import javax.faces.render.Renderer;
import javax.faces.webapp.UIComponentTag;
import javax.servlet.jsp.JspException;
import java.util.ArrayList;
@@ -464,8 +465,13 @@ public class ComponentUtil {
RenderKitFactory rkFactory = (RenderKitFactory)
FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
RenderKit renderKit = rkFactory.getRenderKit(facesContext, facesContext.getViewRoot().getRenderKitId());
- renderer = (LayoutableRendererBase) renderKit.getRenderer(family, rendererType);
- requestMap.put(RENDER_KEY_PREFIX + rendererType, renderer);
+ Renderer myRenderer = renderKit.getRenderer(family, rendererType);
+ if (myRenderer instanceof LayoutableRendererBase) {
+ requestMap.put(RENDER_KEY_PREFIX + rendererType, myRenderer);
+ renderer = (LayoutableRendererBase) myRenderer;
+ } else {
+ return null;
+ }
}
return renderer;
}
diff --git a/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java b/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
index f189809..2411a3a 100644
--- a/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
+++ b/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
@@ -39,6 +39,7 @@ import org.apache.myfaces.tobago.renderkit.LabelWithAccessKey;
import org.apache.myfaces.tobago.renderkit.LayoutInformationProvider;
import org.apache.myfaces.tobago.renderkit.RenderUtil;
import org.apache.myfaces.tobago.renderkit.RendererBaseWrapper;
+import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
import org.apache.myfaces.tobago.util.LayoutUtil;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriterWrapper;
@@ -86,7 +87,8 @@ public final class HtmlRendererUtil {
public static void prepareRender(FacesContext facesContext, UIComponent component) {
// xxx find a better way for this question: isTobago or isLayoutable something like that.
- if (!(ComponentUtil.getRenderer(facesContext, component) instanceof RendererBaseWrapper)) {
+ LayoutableRendererBase layoutRendererBase = ComponentUtil.getRenderer(facesContext, component);
+ if (layoutRendererBase != null && !(layoutRendererBase instanceof RendererBaseWrapper)) {
createCssClass(facesContext, component);
layoutWidth(facesContext, component);
layoutHeight(facesContext, component);
@@ -122,7 +124,10 @@ public final class HtmlRendererUtil {
//final String family = component.getFamily();
if (rendererType != null//&& !"facelets".equals(family)
) {
- return ComponentUtil.getRenderer(facesContext, component).getRendererName(rendererType);
+ LayoutableRendererBase layoutableRendererBase = ComponentUtil.getRenderer(facesContext, component);
+ if (layoutableRendererBase != null) {
+ return layoutableRendererBase.getRendererName(rendererType);
+ }
}
return null;
}
@@ -312,7 +317,6 @@ public final class HtmlRendererUtil {
boolean width) {
// prepare html 'style' attribute
-
Integer layoutSpace;
String layoutAttribute;
String styleAttribute;
--
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.