You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2019/06/20 11:24:34 UTC
[myfaces] branch master updated: fixed reponsewriter wrapping
This is an automated email from the ASF dual-hosted git repository.
tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/master by this push:
new ba8ce0e fixed reponsewriter wrapping
ba8ce0e is described below
commit ba8ce0efaff15d65335b4ffc15cb003dff8b42b4
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Thu Jun 20 13:24:29 2019 +0200
fixed reponsewriter wrapping
---
.../myfaces/push/HtmlBufferResponseWriterWrapper.java | 4 +++-
.../apache/myfaces/push/WebsocketComponentRenderer.java | 14 ++++++++++----
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/push/HtmlBufferResponseWriterWrapper.java b/impl/src/main/java/org/apache/myfaces/push/HtmlBufferResponseWriterWrapper.java
index c9dc901..065c002 100644
--- a/impl/src/main/java/org/apache/myfaces/push/HtmlBufferResponseWriterWrapper.java
+++ b/impl/src/main/java/org/apache/myfaces/push/HtmlBufferResponseWriterWrapper.java
@@ -23,7 +23,8 @@ import javax.faces.context.ResponseWriter;
import java.io.*;
import org.apache.myfaces.renderkit.html.HtmlResponseWriterImpl;
-/**A buffer for content which should not directly be rendered to the page.
+/**
+ * A buffer for content which should not directly be rendered to the page.
*
* @author Sylvain Vieujot (latest modification by $Author: grantsmith $)
* @version $Revision: 169649 $ $Date: 2005-05-11 17:47:12 +0200 (Wed, 11 May 2005) $
@@ -95,6 +96,7 @@ public class HtmlBufferResponseWriterWrapper extends HtmlResponseWriterImpl
*
* @return The content of the buffered and wrapped writer.
*/
+ @Override
public String toString()
{
wrapperWriter.flush();
diff --git a/impl/src/main/java/org/apache/myfaces/push/WebsocketComponentRenderer.java b/impl/src/main/java/org/apache/myfaces/push/WebsocketComponentRenderer.java
index d2a21fc..9ae6918 100644
--- a/impl/src/main/java/org/apache/myfaces/push/WebsocketComponentRenderer.java
+++ b/impl/src/main/java/org/apache/myfaces/push/WebsocketComponentRenderer.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.enterprise.inject.spi.BeanManager;
+import javax.faces.FacesWrapper;
import javax.faces.component.UIComponent;
import javax.faces.component.UIWebsocket;
import javax.faces.component.behavior.ClientBehavior;
@@ -216,13 +217,18 @@ public class WebsocketComponentRenderer extends Renderer implements ComponentSys
if (!facesContext.getPartialViewContext().isAjaxRequest())
{
- HtmlBufferResponseWriterWrapper buffwriter = (HtmlBufferResponseWriterWrapper)
- facesContext.getResponseWriter();
+ ResponseWriter responseWriter = facesContext.getResponseWriter();
+ while (!(responseWriter instanceof HtmlBufferResponseWriterWrapper)
+ && responseWriter instanceof FacesWrapper)
+ {
+ responseWriter = (ResponseWriter) ((FacesWrapper) responseWriter).getWrapped();
+ }
+
init.getUIWebsocketMarkupList().add(writer.toString());
- facesContext.setResponseWriter(buffwriter.getInitialWriter());
+ facesContext.setResponseWriter(((HtmlBufferResponseWriterWrapper) responseWriter).getInitialWriter());
}
}
-
+
private String getBehaviorScripts(FacesContext facesContext, UIWebsocket component)
{
Map<String, List<ClientBehavior>> clientBehaviorsByEvent = component.getClientBehaviors();