You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2020/07/09 18:56:51 UTC

svn commit: r1879723 - in /jackrabbit/branches/2.20: ./ jackrabbit-jcr-server/ jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/ jackrabbit-jcr-servlet/ jackrabbit-parent/ jackrabbit-spi2dav/ jackrabbit-webdav/ jackrabbit-webdav/src/mai...

Author: reschke
Date: Thu Jul  9 18:56:51 2020
New Revision: 1879723

URL: http://svn.apache.org/viewvc?rev=1879723&view=rev
Log:
JCR-4589: upgrade to servlet-api 3.10 (merged r1879148 into 2.20)

Modified:
    jackrabbit/branches/2.20/   (props changed)
    jackrabbit/branches/2.20/jackrabbit-jcr-server/pom.xml
    jackrabbit/branches/2.20/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/BasicCredentialsProviderTest.java
    jackrabbit/branches/2.20/jackrabbit-jcr-servlet/pom.xml
    jackrabbit/branches/2.20/jackrabbit-parent/pom.xml
    jackrabbit/branches/2.20/jackrabbit-spi2dav/pom.xml
    jackrabbit/branches/2.20/jackrabbit-webdav/pom.xml
    jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
    jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java
    jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/io/OutputContextImpl.java
    jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java
    jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/io/OutputContextImplTest.java
    jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/util/CSRFUtilTest.java

Propchange: jackrabbit/branches/2.20/
------------------------------------------------------------------------------
  Merged /jackrabbit/trunk:r1879148

Modified: jackrabbit/branches/2.20/jackrabbit-jcr-server/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-jcr-server/pom.xml?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-jcr-server/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-jcr-server/pom.xml Thu Jul  9 18:56:51 2020
@@ -197,7 +197,7 @@
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
+      <artifactId>javax.servlet-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>

Modified: jackrabbit/branches/2.20/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/BasicCredentialsProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/BasicCredentialsProviderTest.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/BasicCredentialsProviderTest.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/BasicCredentialsProviderTest.java Thu Jul  9 18:56:51 2020
@@ -19,15 +19,25 @@ package org.apache.jackrabbit.server;
 import junit.framework.TestCase;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpUpgradeHandler;
+import javax.servlet.http.Part;
 import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
 import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.jcr.LoginException;
 import javax.jcr.Credentials;
 import javax.jcr.SimpleCredentials;
 import javax.jcr.GuestCredentials;
+
+import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Map;
 import java.util.Locale;
@@ -116,11 +126,11 @@ public class BasicCredentialsProviderTes
             return authHeader;
         }
 
-        public Enumeration<?> getHeaders(String name) {
+        public Enumeration<String> getHeaders(String name) {
             return null;
         }
 
-        public Enumeration<?> getHeaderNames() {
+        public Enumeration<String> getHeaderNames() {
             return null;
         }
 
@@ -204,7 +214,7 @@ public class BasicCredentialsProviderTes
             return null;
         }
 
-        public Enumeration<?> getAttributeNames() {
+        public Enumeration<String> getAttributeNames() {
             return null;
         }
 
@@ -231,7 +241,7 @@ public class BasicCredentialsProviderTes
             return null;
         }
 
-        public Enumeration<?> getParameterNames() {
+        public Enumeration<String> getParameterNames() {
             return null;
         }
 
@@ -239,7 +249,7 @@ public class BasicCredentialsProviderTes
             return new String[0];
         }
 
-        public Map<?,?> getParameterMap() {
+        public Map<String, String[]> getParameterMap() {
             return null;
         }
 
@@ -281,7 +291,7 @@ public class BasicCredentialsProviderTes
             return null;
         }
 
-        public Enumeration<?> getLocales() {
+        public Enumeration<Locale> getLocales() {
             return null;
         }
 
@@ -312,5 +322,64 @@ public class BasicCredentialsProviderTes
         public int getLocalPort() {
             return 0;
         }
+
+        public long getContentLengthLong() {
+            return 0;
+        }
+
+        public ServletContext getServletContext() {
+            return null;
+        }
+
+        public AsyncContext startAsync() throws IllegalStateException {
+            return null;
+        }
+
+        public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
+                throws IllegalStateException {
+            return null;
+        }
+
+        public boolean isAsyncStarted() {
+            return false;
+        }
+
+        public boolean isAsyncSupported() {
+            return false;
+        }
+
+        public AsyncContext getAsyncContext() {
+            return null;
+        }
+
+        public DispatcherType getDispatcherType() {
+            return null;
+        }
+
+        public String changeSessionId() {
+            return null;
+        }
+
+        public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+            return false;
+        }
+
+        public void login(String username, String password) throws ServletException {
+        }
+
+        public void logout() throws ServletException {
+        }
+
+        public Collection<Part> getParts() throws IOException, ServletException {
+            return null;
+        }
+
+        public Part getPart(String name) throws IOException, ServletException {
+            return null;
+        }
+
+        public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
+            return null;
+        }
     }
 }

Modified: jackrabbit/branches/2.20/jackrabbit-jcr-servlet/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-jcr-servlet/pom.xml?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-jcr-servlet/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-jcr-servlet/pom.xml Thu Jul  9 18:56:51 2020
@@ -41,7 +41,7 @@
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
+      <artifactId>javax.servlet-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>

Modified: jackrabbit/branches/2.20/jackrabbit-parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-parent/pom.xml?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-parent/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-parent/pom.xml Thu Jul  9 18:56:51 2020
@@ -545,8 +545,8 @@
       </dependency>
       <dependency>
         <groupId>javax.servlet</groupId>
-        <artifactId>servlet-api</artifactId>
-        <version>2.5</version>
+        <artifactId>javax.servlet-api</artifactId>
+        <version>3.1.0</version>
         <scope>provided</scope>
       </dependency>
       <dependency>

Modified: jackrabbit/branches/2.20/jackrabbit-spi2dav/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-spi2dav/pom.xml?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-spi2dav/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-spi2dav/pom.xml Thu Jul  9 18:56:51 2020
@@ -146,7 +146,7 @@
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
+      <artifactId>javax.servlet-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/pom.xml?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/pom.xml Thu Jul  9 18:56:51 2020
@@ -66,7 +66,7 @@
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
+      <artifactId>javax.servlet-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java Thu Jul  9 18:56:51 2020
@@ -25,6 +25,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.security.Principal;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
@@ -33,12 +34,21 @@ import java.util.Map;
 import java.util.zip.GZIPInputStream;
 import java.util.zip.InflaterInputStream;
 
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
+import javax.servlet.ReadListener;
 import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpUpgradeHandler;
+import javax.servlet.http.Part;
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.jackrabbit.webdav.bind.BindInfo;
@@ -865,222 +875,352 @@ public class WebdavRequestImpl implement
     }
 
     //---------------------------------------< HttpServletRequest interface >---
+
+    @Override
     public String getAuthType() {
         return httpRequest.getAuthType();
     }
 
+    @Override
     public Cookie[] getCookies() {
         return httpRequest.getCookies();
     }
 
+    @Override
     public long getDateHeader(String s) {
         return httpRequest.getDateHeader(s);
     }
 
+    @Override
     public String getHeader(String s) {
         return httpRequest.getHeader(s);
     }
 
-    public Enumeration<?> getHeaders(String s) {
+    @Override
+    public Enumeration<String> getHeaders(String s) {
         return httpRequest.getHeaders(s);
     }
 
-    public Enumeration<?> getHeaderNames() {
+    @Override
+    public Enumeration<String> getHeaderNames() {
         return httpRequest.getHeaderNames();
     }
 
+    @Override
     public int getIntHeader(String s) {
         return httpRequest.getIntHeader(s);
     }
 
+    @Override
     public String getMethod() {
         return httpRequest.getMethod();
     }
 
+    @Override
     public String getPathInfo() {
         return httpRequest.getPathInfo();
     }
 
+    @Override
     public String getPathTranslated() {
         return httpRequest.getPathTranslated();
     }
 
+    @Override
     public String getContextPath() {
         return httpRequest.getContextPath();
     }
 
+    @Override
     public String getQueryString() {
         return httpRequest.getQueryString();
     }
 
+    @Override
     public String getRemoteUser() {
         return httpRequest.getRemoteUser();
     }
 
+    @Override
     public boolean isUserInRole(String s) {
         return httpRequest.isUserInRole(s);
     }
 
+    @Override
     public Principal getUserPrincipal() {
         return httpRequest.getUserPrincipal();
     }
 
+    @Override
     public String getRequestedSessionId() {
         return httpRequest.getRequestedSessionId();
     }
 
+    @Override
     public String getRequestURI() {
         return httpRequest.getRequestURI();
     }
 
+    @Override
     public StringBuffer getRequestURL() {
         return httpRequest.getRequestURL();
     }
 
+    @Override
     public String getServletPath() {
         return httpRequest.getServletPath();
     }
 
+    @Override
     public HttpSession getSession(boolean b) {
         return httpRequest.getSession(b);
     }
 
+    @Override
     public HttpSession getSession() {
         return httpRequest.getSession();
     }
 
+    @Override
     public boolean isRequestedSessionIdValid() {
         return httpRequest.isRequestedSessionIdValid();
     }
 
+    @Override
     public boolean isRequestedSessionIdFromCookie() {
         return httpRequest.isRequestedSessionIdFromCookie();
     }
 
+    @Override
     public boolean isRequestedSessionIdFromURL() {
         return httpRequest.isRequestedSessionIdFromURL();
     }
 
+    @Override
     public boolean isRequestedSessionIdFromUrl() {
         return httpRequest.isRequestedSessionIdFromUrl();
     }
 
+    @Override
     public Object getAttribute(String s) {
         return httpRequest.getAttribute(s);
     }
 
-    public Enumeration<?> getAttributeNames() {
+    @Override
+    public Enumeration<String> getAttributeNames() {
         return httpRequest.getAttributeNames();
     }
 
+    @Override
     public String getCharacterEncoding() {
         return httpRequest.getCharacterEncoding();
     }
 
+    @Override
     public void setCharacterEncoding(String s) throws UnsupportedEncodingException {
         httpRequest.setCharacterEncoding(s);
     }
 
+    @Override
     public int getContentLength() {
         return httpRequest.getContentLength();
     }
 
+    @Override
     public String getContentType() {
         return httpRequest.getContentType();
     }
 
+    @Override
     public ServletInputStream getInputStream() throws IOException {
         return new MyServletInputStream(getDecodedInputStream());
     }
 
+    @Override
     public String getParameter(String s) {
         return httpRequest.getParameter(s);
     }
 
-    public Enumeration<?> getParameterNames() {
+    @Override
+    public Enumeration<String> getParameterNames() {
         return httpRequest.getParameterNames();
     }
 
+    @Override
     public String[] getParameterValues(String s) {
         return httpRequest.getParameterValues(s);
     }
 
-    public Map<?,?> getParameterMap() {
+    @Override
+    public Map<String, String[]> getParameterMap() {
         return httpRequest.getParameterMap();
     }
 
+    @Override
     public String getProtocol() {
         return httpRequest.getProtocol();
     }
 
+    @Override
     public String getScheme() {
         return httpRequest.getScheme();
     }
 
+    @Override
     public String getServerName() {
         return httpRequest.getServerName();
     }
 
+    @Override
     public int getServerPort() {
         return httpRequest.getServerPort();
     }
 
+    @Override
     public BufferedReader getReader() throws IOException {
         return httpRequest.getReader();
     }
 
+    @Override
     public String getRemoteAddr() {
         return httpRequest.getRemoteAddr();
     }
 
+    @Override
     public String getRemoteHost() {
         return httpRequest.getRemoteHost();
     }
 
+    @Override
     public void setAttribute(String s, Object o) {
         httpRequest.setAttribute(s, o);
     }
 
+    @Override
     public void removeAttribute(String s) {
         httpRequest.removeAttribute(s);
     }
 
+    @Override
     public Locale getLocale() {
         return httpRequest.getLocale();
     }
 
-    public Enumeration<?> getLocales() {
+    @Override
+    public Enumeration<Locale> getLocales() {
         return httpRequest.getLocales();
     }
 
+    @Override
     public boolean isSecure() {
         return httpRequest.isSecure();
     }
 
+    @Override
     public RequestDispatcher getRequestDispatcher(String s) {
         return httpRequest.getRequestDispatcher(s);
     }
 
+    @Override
     public String getRealPath(String s) {
         return httpRequest.getRealPath(s);
     }
 
+    @Override
     public int getRemotePort() {
         return httpRequest.getRemotePort();
     }
 
+    @Override
     public String getLocalName() {
         return httpRequest.getLocalName();
     }
 
+    @Override
     public String getLocalAddr() {
         return httpRequest.getLocalAddr();
     }
 
+    @Override
     public int getLocalPort() {
         return httpRequest.getLocalPort();
     }
 
+    @Override
+    public String changeSessionId() {
+        return httpRequest.changeSessionId();
+    }
+
+    @Override
+    public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+        return httpRequest.authenticate(response);
+    }
+
+    @Override
+    public void login(String username, String password) throws ServletException {
+        httpRequest.login(username, password);
+    }
+
+    @Override
+    public void logout() throws ServletException {
+        httpRequest.logout();
+    }
+
+    @Override
+    public Collection<Part> getParts() throws IOException, ServletException {
+        return httpRequest.getParts();
+    }
+
+    @Override
+    public Part getPart(String name) throws IOException, ServletException {
+        return httpRequest.getPart(name);
+    }
+
+    @Override
+    public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
+        return httpRequest.upgrade(handlerClass);
+    }
+
+    @Override
+    public long getContentLengthLong() {
+        return httpRequest.getContentLengthLong();
+    }
+
+    @Override
+    public ServletContext getServletContext() {
+        return httpRequest.getServletContext();
+    }
+
+    @Override
+    public AsyncContext startAsync() throws IllegalStateException {
+        return httpRequest.startAsync();
+    }
+
+    @Override
+    public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
+        return httpRequest.startAsync(servletRequest, servletResponse);
+    }
+
+    @Override
+    public boolean isAsyncStarted() {
+        return httpRequest.isAsyncStarted();
+    }
+
+    @Override
+    public boolean isAsyncSupported() {
+        return httpRequest.isAsyncSupported();
+    }
+
+    @Override
+    public AsyncContext getAsyncContext() {
+        return httpRequest.getAsyncContext();
+    }
+
+    @Override
+    public DispatcherType getDispatcherType() {
+        return httpRequest.getDispatcherType();
+    }
+
     private static class MyServletInputStream extends ServletInputStream {
 
         private final InputStream delegate;
@@ -1153,5 +1293,20 @@ public class WebdavRequestImpl implement
         public String toString() {
             return delegate.toString();
         }
+
+        @Override
+        public boolean isFinished() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean isReady() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void setReadListener(ReadListener readListener) {
+            throw new UnsupportedOperationException();
+        }
     }
 }

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java Thu Jul  9 18:56:51 2020
@@ -41,6 +41,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
@@ -193,131 +194,189 @@ public class WebdavResponseImpl implemen
     }
 
     //--------------------------------------< HttpServletResponse interface >---
+
+    @Override
     public void addCookie(Cookie cookie) {
         httpResponse.addCookie(cookie);
     }
 
+    @Override
     public boolean containsHeader(String s) {
         return httpResponse.containsHeader(s);
     }
 
+    @Override
     public String encodeURL(String s) {
         return httpResponse.encodeRedirectURL(s);
     }
 
+    @Override
     public String encodeRedirectURL(String s) {
         return httpResponse.encodeRedirectURL(s);
     }
 
+    @Override
     public String encodeUrl(String s) {
         return httpResponse.encodeUrl(s);
     }
 
+    @Override
     public String encodeRedirectUrl(String s) {
         return httpResponse.encodeRedirectURL(s);
     }
 
+    @Override
     public void sendError(int i, String s) throws IOException {
         httpResponse.sendError(i, s);
     }
 
+    @Override
     public void sendError(int i) throws IOException {
         httpResponse.sendError(i);
     }
 
+    @Override
     public void sendRedirect(String s) throws IOException {
         httpResponse.sendRedirect(s);
     }
 
+    @Override
     public void setDateHeader(String s, long l) {
         httpResponse.setDateHeader(s, l);
     }
 
+    @Override
     public void addDateHeader(String s, long l) {
         httpResponse.addDateHeader(s, l);
     }
 
+    @Override
     public void setHeader(String s, String s1) {
         httpResponse.setHeader(s, s1);
     }
 
+    @Override
     public void addHeader(String s, String s1) {
         httpResponse.addHeader(s, s1);
     }
 
+    @Override
     public void setIntHeader(String s, int i) {
         httpResponse.setIntHeader(s, i);
     }
 
+    @Override
     public void addIntHeader(String s, int i) {
         httpResponse.addIntHeader(s, i);
     }
 
+    @Override
     public void setStatus(int i) {
         httpResponse.setStatus(i);
     }
 
+    @Override
     public void setStatus(int i, String s) {
         httpResponse.setStatus(i, s);
     }
 
+    @Override
     public String getCharacterEncoding() {
         return httpResponse.getCharacterEncoding();
     }
 
+    @Override
     public ServletOutputStream getOutputStream() throws IOException {
         return httpResponse.getOutputStream();
     }
 
+    @Override
     public PrintWriter getWriter() throws IOException {
         return httpResponse.getWriter();
     }
 
+    @Override
     public void setContentLength(int i) {
         httpResponse.setContentLength(i);
     }
 
+    @Override
     public void setContentType(String s) {
         httpResponse.setContentType(s);
     }
 
+    @Override
     public void setBufferSize(int i) {
         httpResponse.setBufferSize(i);
     }
 
+    @Override
     public int getBufferSize() {
         return httpResponse.getBufferSize();
     }
 
+    @Override
     public void flushBuffer() throws IOException {
         httpResponse.flushBuffer();
     }
 
+    @Override
     public void resetBuffer() {
         httpResponse.resetBuffer();
     }
 
+    @Override
     public boolean isCommitted() {
         return httpResponse.isCommitted();
     }
 
+    @Override
     public void reset() {
         httpResponse.reset();
     }
 
+    @Override
     public void setLocale(Locale locale) {
         httpResponse.setLocale(locale);
     }
 
+    @Override
     public Locale getLocale() {
         return httpResponse.getLocale();
     }
 
+    @Override
     public String getContentType() {
         return httpResponse.getContentType();
     }
 
+    @Override
     public void setCharacterEncoding(String charset) {
         httpResponse.setCharacterEncoding(charset);
     }
+
+    @Override
+    public int getStatus() {
+        return httpResponse.getStatus();
+    }
+
+    @Override
+    public String getHeader(String name) {
+        return httpResponse.getHeader(name);
+    }
+
+    @Override
+    public Collection<String> getHeaders(String name) {
+        return httpResponse.getHeaders(name);
+    }
+
+    @Override
+    public Collection<String> getHeaderNames() {
+        return httpResponse.getHeaderNames();
+    }
+
+    @Override
+    public void setContentLengthLong(long len) {
+        httpResponse.setContentLengthLong(len);
+    }
 }

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/io/OutputContextImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/io/OutputContextImpl.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/io/OutputContextImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/io/OutputContextImpl.java Thu Jul  9 18:56:51 2020
@@ -58,11 +58,7 @@ public class OutputContextImpl implement
 
     public void setContentLength(long contentLength) {
         if (contentLength >= 0) {
-            if (contentLength <= Integer.MAX_VALUE) {
-                response.setContentLength((int) contentLength);
-            } else {
-                response.addHeader(DavConstants.HEADER_CONTENT_LENGTH, Long.toString(contentLength));
-            }
+            response.setContentLengthLong(contentLength);
         } // else: negative content length -> ignore.
     }
 

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java Thu Jul  9 18:56:51 2020
@@ -1509,8 +1509,7 @@ abstract public class AbstractWebdavServ
 
     private static List<String> getListElementsFromHeaderField(HttpServletRequest request, String fieldName) {
         List<String> result = Collections.emptyList();
-        for (@SuppressWarnings("unchecked")
-        Enumeration<String> ceh = request.getHeaders(fieldName); ceh.hasMoreElements();) {
+        for (Enumeration<String> ceh = request.getHeaders(fieldName); ceh.hasMoreElements();) {
             for (String h : ceh.nextElement().split(",")) {
                 if (!h.trim().isEmpty()) {
                     if (result.isEmpty()) {
@@ -1532,7 +1531,6 @@ abstract public class AbstractWebdavServ
      * @throws IllegalArgumentException when multiple field lines present
      */
     protected static String getSingletonField(HttpServletRequest request, String fieldName) {
-        @SuppressWarnings("unchecked")
         Enumeration<String> lines = request.getHeaders(fieldName);
         if (!lines.hasMoreElements()) {
             return null;

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/io/OutputContextImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/io/OutputContextImplTest.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/io/OutputContextImplTest.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/io/OutputContextImplTest.java Thu Jul  9 18:56:51 2020
@@ -23,6 +23,7 @@ import javax.servlet.http.Cookie;
 import javax.servlet.ServletOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Collection;
 import java.util.Locale;
 
 /**
@@ -47,6 +48,25 @@ public class OutputContextImplTest exten
             @Override
             public void setCharacterEncoding(String charset) {
             }
+            @Override
+            public int getStatus() {
+                return 0;
+            }
+            @Override
+            public String getHeader(String name) {
+                return null;
+            }
+            @Override
+            public Collection<String> getHeaders(String name) {
+                return null;
+            }
+            @Override
+            public Collection<String> getHeaderNames() {
+                return null;
+            }
+            @Override
+            public void setContentLengthLong(long len) {
+            }
         };
 
         OutputContext ctx = new OutputContextImpl(response, null);

Modified: jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/util/CSRFUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/util/CSRFUtilTest.java?rev=1879723&r1=1879722&r2=1879723&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/util/CSRFUtilTest.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/util/CSRFUtilTest.java Thu Jul  9 18:56:51 2020
@@ -31,11 +31,20 @@ import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
 
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
 import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpUpgradeHandler;
+import javax.servlet.http.Part;
 
 import junit.framework.TestCase;
 
@@ -355,5 +364,49 @@ public class CSRFUtilTest extends TestCa
         public int getLocalPort() {
             return 0;
         }
+        public long getContentLengthLong() {
+            return 0;
+        }
+        public ServletContext getServletContext() {
+            return null;
+        }
+        public AsyncContext startAsync() throws IllegalStateException {
+            return null;
+        }
+        public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
+                throws IllegalStateException {
+            return null;
+        }
+        public boolean isAsyncStarted() {
+            return false;
+        }
+        public boolean isAsyncSupported() {
+            return false;
+        }
+        public AsyncContext getAsyncContext() {
+            return null;
+        }
+        public DispatcherType getDispatcherType() {
+            return null;
+        }
+        public String changeSessionId() {
+            return null;
+        }
+        public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+            return false;
+        }
+        public void login(String username, String password) throws ServletException {
+        }
+        public void logout() throws ServletException {
+        }
+        public Collection<Part> getParts() throws IOException, ServletException {
+            return null;
+        }
+        public Part getPart(String name) throws IOException, ServletException {
+            return null;
+        }
+        public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
+            return null;
+        }
     }
 }
\ No newline at end of file