Repository: flink
Updated Branches:
  refs/heads/master e4f802dd5 -> 08e7ba492


[FLINK-5109] [webfrontend] Fix invalid content-encoding

This closes #2898


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/08e7ba49
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/08e7ba49
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/08e7ba49

Branch: refs/heads/master
Commit: 08e7ba4920b9b44dc15269e4f507d89025209937
Parents: e4f802d
Author: tibor.moger <[email protected]>
Authored: Mon Nov 28 16:51:47 2016 +0100
Committer: Greg Hogan <[email protected]>
Committed: Sat Dec 3 12:07:53 2016 -0500

----------------------------------------------------------------------
 .../runtime/webmonitor/HttpRequestHandler.java  | 37 ++++++++++----------
 .../webmonitor/PipelineErrorHandler.java        |  1 -
 .../webmonitor/RuntimeMonitorHandler.java       |  4 +--
 .../handlers/ConstantTextHandler.java           |  9 +++--
 .../handlers/HandlerRedirectUtils.java          |  2 --
 5 files changed, 23 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/08e7ba49/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
index bbd29fa..703b621 100644
--- 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
+++ 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
@@ -66,7 +66,7 @@ import java.util.UUID;
 public class HttpRequestHandler extends 
SimpleChannelInboundHandler<HttpObject> {
 
        private static final Charset ENCODING = Charset.forName("UTF-8");
-       
+
        /** A decoder factory that always stores POST chunks on disk */
        private static final HttpDataFactory DATA_FACTORY = new 
DefaultHttpDataFactory(true);
 
@@ -80,7 +80,7 @@ public class HttpRequestHandler extends 
SimpleChannelInboundHandler<HttpObject>
        public HttpRequestHandler(File tmpDir) {
                this.tmpDir = tmpDir;
        }
-       
+
        @Override
        public void channelUnregistered(ChannelHandlerContext ctx) throws 
Exception {
                if (currentDecoder != null) {
@@ -94,12 +94,12 @@ public class HttpRequestHandler extends 
SimpleChannelInboundHandler<HttpObject>
                        if (msg instanceof HttpRequest) {
                                currentRequest = (HttpRequest) msg;
                                currentRequestPath = null;
-                               
+
                                if (currentDecoder != null) {
                                        currentDecoder.destroy();
                                        currentDecoder = null;
                                }
-                               
+
                                if (currentRequest.getMethod() == 
HttpMethod.GET || currentRequest.getMethod() == HttpMethod.DELETE) {
                                        // directly delegate to the router
                                        ctx.fireChannelRead(currentRequest);
@@ -118,43 +118,43 @@ public class HttpRequestHandler extends 
SimpleChannelInboundHandler<HttpObject>
                                // received new chunk, give it to the current 
decoder
                                HttpContent chunk = (HttpContent) msg;
                                currentDecoder.offer(chunk);
-                               
+
                                try {
                                        while (currentDecoder.hasNext()) {
                                                InterfaceHttpData data = 
currentDecoder.next();
-                                               
+
                                                // IF SOMETHING EVER NEEDS POST 
PARAMETERS, THIS WILL BE THE PLACE TO HANDLE IT
                                                // all fields values will be 
passed with type Attribute.
-                                               
+
                                                if (data.getHttpDataType() == 
HttpDataType.FileUpload) {
                                                        DiskFileUpload file = 
(DiskFileUpload) data;
                                                        if (file.isCompleted()) 
{
                                                                String name = 
file.getFilename();
-                                                               
+
                                                                File target = 
new File(tmpDir, UUID.randomUUID() + "_" + name);
                                                                
file.renameTo(target);
-                                                               
+
                                                                
QueryStringEncoder encoder = new QueryStringEncoder(currentRequestPath);
                                                                
encoder.addParam("filepath", target.getAbsolutePath());
                                                                
encoder.addParam("filename", name);
-                                                               
+
                                                                
currentRequest.setUri(encoder.toString());
                                                        }
                                                }
-                                               
+
                                                data.release();
                                        }
                                }
                                catch (EndOfDataDecoderException ignored) {}
-                               
+
                                if (chunk instanceof LastHttpContent) {
                                        HttpRequest request = currentRequest;
                                        currentRequest = null;
                                        currentRequestPath = null;
-                                       
+
                                        currentDecoder.destroy();
                                        currentDecoder = null;
-                                       
+
                                        // fire next channel handler
                                        ctx.fireChannelRead(request);
                                }
@@ -163,20 +163,19 @@ public class HttpRequestHandler extends 
SimpleChannelInboundHandler<HttpObject>
                catch (Throwable t) {
                        currentRequest = null;
                        currentRequestPath = null;
-                       
+
                        if (currentDecoder != null) {
                                currentDecoder.destroy();
                                currentDecoder = null;
                        }
-                       
+
                        if (ctx.channel().isActive()) {
                                byte[] bytes = 
ExceptionUtils.stringifyException(t).getBytes(ENCODING);
-                               
+
                                DefaultFullHttpResponse response = new 
DefaultFullHttpResponse(
                                        HttpVersion.HTTP_1_1, 
HttpResponseStatus.INTERNAL_SERVER_ERROR,
                                        Unpooled.wrappedBuffer(bytes));
-       
-                               
response.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
+
                                
response.headers().set(HttpHeaders.Names.CONTENT_TYPE, "text/plain");
                                
response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
response.content().readableBytes());
 

http://git-wip-us.apache.org/repos/asf/flink/blob/08e7ba49/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/PipelineErrorHandler.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/PipelineErrorHandler.java
 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/PipelineErrorHandler.java
index 23a0ba6..b4788dd 100644
--- 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/PipelineErrorHandler.java
+++ 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/PipelineErrorHandler.java
@@ -64,7 +64,6 @@ public class PipelineErrorHandler extends 
SimpleChannelInboundHandler<Object> {
                                                
HttpResponseStatus.INTERNAL_SERVER_ERROR, 
Unpooled.wrappedBuffer(error.getBytes()));
 
                        response.headers().set(HttpHeaders.Names.CONTENT_TYPE, 
"text/plain");
-                       
response.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
                        
response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
response.content().readableBytes());
 
                        ctx.writeAndFlush(response);

http://git-wip-us.apache.org/repos/asf/flink/blob/08e7ba49/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/RuntimeMonitorHandler.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/RuntimeMonitorHandler.java
 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/RuntimeMonitorHandler.java
index aba4e17..68e1735 100644
--- 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/RuntimeMonitorHandler.java
+++ 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/RuntimeMonitorHandler.java
@@ -61,7 +61,7 @@ public class RuntimeMonitorHandler extends 
RuntimeMonitorHandlerBase {
        private static final Charset ENCODING = Charset.forName("UTF-8");
 
        public static final String WEB_MONITOR_ADDRESS_KEY = 
"web.monitor.address";
-       
+
        private final RequestHandler handler;
 
        public RuntimeMonitorHandler(
@@ -102,7 +102,6 @@ public class RuntimeMonitorHandler extends 
RuntimeMonitorHandlerBase {
                                        : 
Unpooled.wrappedBuffer(e.getMessage().getBytes(ENCODING));
                        response = new 
DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, 
message);
                        response.headers().set(HttpHeaders.Names.CONTENT_TYPE, 
"text/plain");
-                       
response.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
                        
response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
response.content().readableBytes());
                        LOG.debug("Error while handling request", e);
                }
@@ -111,7 +110,6 @@ public class RuntimeMonitorHandler extends 
RuntimeMonitorHandlerBase {
                        response = new 
DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
                                        
HttpResponseStatus.INTERNAL_SERVER_ERROR, Unpooled.wrappedBuffer(bytes));
                        response.headers().set(HttpHeaders.Names.CONTENT_TYPE, 
"text/plain");
-                       
response.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
                        
response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
response.content().readableBytes());
 
                        LOG.debug("Error while handling request", e);

http://git-wip-us.apache.org/repos/asf/flink/blob/08e7ba49/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ConstantTextHandler.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ConstantTextHandler.java
 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ConstantTextHandler.java
index aedf0c2..127efdb 100644
--- 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ConstantTextHandler.java
+++ 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ConstantTextHandler.java
@@ -37,9 +37,9 @@ import java.io.UnsupportedEncodingException;
  */
 @ChannelHandler.Sharable
 public class ConstantTextHandler extends SimpleChannelInboundHandler<Routed> {
-       
+
        private final byte[] encodedText;
-       
+
        public ConstantTextHandler(String text) {
                try {
                        this.encodedText = text.getBytes("UTF-8");
@@ -48,16 +48,15 @@ public class ConstantTextHandler extends 
SimpleChannelInboundHandler<Routed> {
                        throw new RuntimeException(e.getMessage(), e);
                }
        }
-       
+
        @Override
        protected void channelRead0(ChannelHandlerContext ctx, Routed routed) 
throws Exception {
                HttpResponse response = new DefaultFullHttpResponse(
                        HttpVersion.HTTP_1_1, HttpResponseStatus.OK, 
Unpooled.wrappedBuffer(encodedText));
 
                response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
encodedText.length);
-               response.headers().set(HttpHeaders.Names.CONTENT_ENCODING, 
"utf-8");
                response.headers().set(HttpHeaders.Names.CONTENT_TYPE, 
"text/plain");
-               
+
                KeepAliveWrite.flush(ctx, routed.request(), response);
        }
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/08e7ba49/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/HandlerRedirectUtils.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/HandlerRedirectUtils.java
 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/HandlerRedirectUtils.java
index 21a0f8c..ca61ec1 100644
--- 
a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/HandlerRedirectUtils.java
+++ 
b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/HandlerRedirectUtils.java
@@ -89,7 +89,6 @@ public class HandlerRedirectUtils {
                HttpResponse redirectResponse = new DefaultFullHttpResponse(
                                HttpVersion.HTTP_1_1, 
HttpResponseStatus.TEMPORARY_REDIRECT);
                redirectResponse.headers().set(HttpHeaders.Names.LOCATION, 
newLocation);
-               
redirectResponse.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
                
redirectResponse.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 0);
 
                return redirectResponse;
@@ -102,7 +101,6 @@ public class HandlerRedirectUtils {
                HttpResponse unavailableResponse = new DefaultFullHttpResponse(
                                HttpVersion.HTTP_1_1, 
HttpResponseStatus.SERVICE_UNAVAILABLE, Unpooled.wrappedBuffer(bytes));
 
-               
unavailableResponse.headers().set(HttpHeaders.Names.CONTENT_ENCODING, "utf-8");
                
unavailableResponse.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 
bytes.length);
                
unavailableResponse.headers().set(HttpHeaders.Names.CONTENT_TYPE, 
MimeTypes.getMimeTypeForExtension("txt"));
 

Reply via email to