Repository: tomee Updated Branches: refs/heads/develop bc5f6957c -> 74640eb0b
under windows socket stream are a bit broken compared to linux and we need to override write(byte[]). Thanks to Yann Blazart to have reported it Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/74640eb0 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/74640eb0 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/74640eb0 Branch: refs/heads/develop Commit: 74640eb0bbc633bc973c454e14a67dec5ba9c43c Parents: bc5f695 Author: Romain Manni-Bucau <[email protected]> Authored: Thu Feb 5 19:33:35 2015 +0100 Committer: Romain Manni-Bucau <[email protected]> Committed: Thu Feb 5 19:33:35 2015 +0100 ---------------------------------------------------------------------- .../server/httpd/HttpListenerRegistry.java | 4 +++- .../server/stream/CountingOutputStream.java | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/74640eb0/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java ---------------------------------------------------------------------- diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java index 15012b1..6d9786e 100644 --- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java +++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java @@ -57,6 +57,7 @@ public class HttpListenerRegistry implements HttpListener { private final ClassLoader defaultClassLoader; private final File[] resourceBases; private final Map<String, String> defaultContextTypes = new HashMap<>(); + private final String welcomeFile = SystemInstance.get().getProperty("openejb.http.welcome", "index.html"); public HttpListenerRegistry() { HttpServletRequest mock = null; @@ -200,7 +201,8 @@ public class HttpListenerRegistry implements HttpListener { if (url != null) { serveResource(response, url); } else { - final String pathWithoutSlash = servletPath.startsWith("/") ? servletPath.substring(1) : servletPath; + final String pathWithoutSlash = "/".equals(path) ? welcomeFile : + (servletPath.startsWith("/") ? servletPath.substring(1) : servletPath); url = defaultClassLoader.getResource("META-INF/resources/" + pathWithoutSlash); if (url != null) { serveResource(response, url); http://git-wip-us.apache.org/repos/asf/tomee/blob/74640eb0/server/openejb-server/src/main/java/org/apache/openejb/server/stream/CountingOutputStream.java ---------------------------------------------------------------------- diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/stream/CountingOutputStream.java b/server/openejb-server/src/main/java/org/apache/openejb/server/stream/CountingOutputStream.java index 3924081..e847d40 100644 --- a/server/openejb-server/src/main/java/org/apache/openejb/server/stream/CountingOutputStream.java +++ b/server/openejb-server/src/main/java/org/apache/openejb/server/stream/CountingOutputStream.java @@ -16,31 +16,34 @@ */ package org.apache.openejb.server.stream; +import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; -public class CountingOutputStream extends OutputStream { - private final OutputStream delegate; +// IMPORTANT: write(byte[]) methods are theorically useless but 1) good for perf, 2) avoid to break on windows (socket impl) +public class CountingOutputStream extends FilterOutputStream { private int count = 0; public CountingOutputStream(final OutputStream rawIn) { - delegate = rawIn; + super(rawIn); } @Override public void write(final int b) throws IOException { count++; - delegate.write(b); + super.write(b); } @Override - public void flush() throws IOException { - delegate.flush(); + public void write(final byte[] b) throws IOException { + count += b.length; + super.write(b); } @Override - public void close() throws IOException { - delegate.close(); + public void write(final byte[] b, final int off, final int len) throws IOException { + count += len; + super.write(b, off, len); } public int getCount() {
