Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions gxweb/src/main/java/com/genexus/internet/HttpAjaxContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ public DynAjaxEventContext getDynAjaxEventContext() {

private boolean isJsOutputEnabled = true;

public HttpAjaxContext(IHttpServletRequest req) throws IOException{
this("GET", req, null, null);
}

public HttpAjaxContext(String requestMethod, IHttpServletRequest req, IHttpServletResponse res,
IServletContext servletContext) throws IOException {
super(requestMethod, req, res, servletContext);
Expand Down
28 changes: 19 additions & 9 deletions gxweb/src/main/java/com/genexus/webpanels/WebWrapper.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package com.genexus.webpanels;
import java.io.ByteArrayOutputStream;

import com.genexus.internet.HttpAjaxContext;
import com.genexus.servlet.http.IHttpServletRequest;
import com.genexus.ModelContext;
import com.genexus.internet.HttpContext;
import com.genexus.internet.HttpContextNull;
import com.genexus.internet.HttpRequest;
import org.apache.logging.log4j.Logger;

public class WebWrapper
{
private static Logger log = org.apache.logging.log4j.LogManager.getLogger(WebWrapper.class);

private String baseURL = "";
private GXWebPanel panel;
private ByteArrayOutputStream out;
Expand All @@ -28,15 +33,20 @@ public void setSource(GXWebPanel panel)
ModelContext context = panel.getModelContext();
HttpRequest httpReq = ((HttpContext) context.getHttpContext()).getHttpRequest();
IHttpServletRequest httpSerReq = ((HttpContext) context.getHttpContext()).getRequest();
context.setHttpContext(new HttpContextNull());
((HttpContext) context.getHttpContext()).setHttpRequest(httpReq);
((HttpContext) context.getHttpContext()).setRequest(httpSerReq);
((HttpContext) context.getHttpContext()).setContext(context);
panel.setHttpContext(((HttpContext) context.getHttpContext()));
panel.getHttpContext().setCompression(false);
panel.getHttpContext().setBuffered(false);
panel.getHttpContext().useUtf8 = true;
panel.getHttpContext().setOutputStream(new java.io.ByteArrayOutputStream());
try {
context.setHttpContext(new HttpAjaxContext(httpSerReq));
((HttpContext) context.getHttpContext()).setHttpRequest(httpReq);
((HttpContext) context.getHttpContext()).setRequest(httpSerReq);
((HttpContext) context.getHttpContext()).setContext(context);
panel.httpContext = (HttpAjaxContext)context.getHttpContext();
panel.httpContext.setCompression(false);
panel.httpContext.setBuffered(false);
panel.httpContext.useUtf8 = true;
panel.httpContext.setOutputStream(new java.io.ByteArrayOutputStream());
}
catch (Exception e) {
log.error("Failed to create WebWrapper", e);
}
}

public GXWebPanel getSource()
Expand Down
15 changes: 15 additions & 0 deletions java/src/main/java/com/genexus/webpanels/HttpContextWeb.java
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,9 @@ public String GetNextPar() {
}

public byte setHeader(String header, String value) {
if (getResponse() == null)
return 0;

response.setHeader(header, value.replace("\n", "%0a").replace("\r", "%0d"));
return 0;
}
Expand Down Expand Up @@ -485,6 +488,9 @@ public boolean forwardAsWebCallMethod() {
private String contextPath;

public String getContextPath() {
if (getResponse() == null)
return "";

if (contextPath == null) {
if (servletContext.getServerInfo().startsWith("ApacheJServ")) {
contextPath = "";
Expand Down Expand Up @@ -1011,6 +1017,9 @@ public int getHttpSecure() {
}

public byte setContentType(String type) {
if (getResponse() == null)
return 1;

contentType = type;
if (type.equalsIgnoreCase("text/html") && useUtf8) {
type += "; charset=utf-8";
Expand Down Expand Up @@ -1246,6 +1255,9 @@ private boolean useCustomRedirect() {
}

public String getDefaultPath() {
if (servletContext == null)
return "";

String path = servletContext.getRealPath("/");

if (path == null && servletContext.getAttribute(servletContext.getTEMPDIR()) != null) {
Expand Down Expand Up @@ -1350,6 +1362,9 @@ protected void pushUrlSessionStorage() {
}

public void setStream() {
if (getResponse() == null)
return;

try {
if (streamSet) {
return;
Expand Down