From 9a28f8a48407e979423d162479771ebff0f0cf48 Mon Sep 17 00:00:00 2001 From: Mark Thomas Date: Tue, 16 May 2017 13:35:39 +0000 Subject: [PATCH] Simplify code No need to wrap BufferedInputStream in another BufferedInputStream git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1795308 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/jasper/compiler/EncodingDetector.java | 11 ++--------- java/org/apache/jasper/compiler/ParserController.java | 6 +++--- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/java/org/apache/jasper/compiler/EncodingDetector.java b/java/org/apache/jasper/compiler/EncodingDetector.java index f6b6e2994c81..0f5e6c6fe57b 100644 --- a/java/org/apache/jasper/compiler/EncodingDetector.java +++ b/java/org/apache/jasper/compiler/EncodingDetector.java @@ -43,15 +43,8 @@ class EncodingDetector { private final boolean encodingSpecifiedInProlog; - /* - * TODO: Refactor Jasper InputStream creation and handling so the - * InputStream passed to this method is buffered and therefore saves - * on multiple opening and re-opening of the same file. - */ - EncodingDetector(InputStream is) throws IOException { - // Keep buffer size to a minimum here. BoM will be no more than 4 bytes - // so that is the maximum we need to buffer - BufferedInputStream bis = new BufferedInputStream(is, 4); + EncodingDetector(BufferedInputStream bis) throws IOException { + // Buffer is 1k. BOM is only 4 bytes. bis.mark(4); BomResult bomResult = processBom(bis); diff --git a/java/org/apache/jasper/compiler/ParserController.java b/java/org/apache/jasper/compiler/ParserController.java index 396ac1b3699d..40d519c50be7 100644 --- a/java/org/apache/jasper/compiler/ParserController.java +++ b/java/org/apache/jasper/compiler/ParserController.java @@ -16,9 +16,9 @@ */ package org.apache.jasper.compiler; +import java.io.BufferedInputStream; import java.io.FileNotFoundException; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.util.Stack; @@ -318,8 +318,8 @@ private void determineSyntaxAndEncoding(String absFileName, Jar jar, sourceEnc = "ISO-8859-1"; } else { // XML syntax or unknown, (auto)detect encoding ... - InputStream inStream = JspUtil.getInputStream(absFileName, jar, ctxt); - EncodingDetector encodingDetector = new EncodingDetector(inStream); + BufferedInputStream bis = JspUtil.getInputStream(absFileName, jar, ctxt); + EncodingDetector encodingDetector = new EncodingDetector(bis); sourceEnc = encodingDetector.getEncoding(); isEncodingSpecifiedInProlog = encodingDetector.isEncodingSpecifiedInProlog();