You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2016/03/13 11:59:08 UTC
svn commit: r1734783 - in /tomcat/tc8.5.x/trunk/java: javax/el/
org/apache/catalina/connector/ org/apache/catalina/filters/
org/apache/catalina/tribes/group/interceptors/ org/apache/catalina/util/
org/apache/catalina/valves/ org/apache/coyote/http2/ or...
Author: remm
Date: Sun Mar 13 10:59:08 2016
New Revision: 1734783
URL: http://svn.apache.org/viewvc?rev=1734783&view=rev
Log:
First pass form some Java 7 issues.
Modified:
tomcat/tc8.5.x/trunk/java/javax/el/ExpressionFactory.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/InputBuffer.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/OutputBuffer.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java
tomcat/tc8.5.x/trunk/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2Parser.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java
Modified: tomcat/tc8.5.x/trunk/java/javax/el/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/el/ExpressionFactory.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/el/ExpressionFactory.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/el/ExpressionFactory.java Sun Mar 13 10:59:08 2016
@@ -325,7 +325,7 @@ public abstract class ExpressionFactory
}
public void setFactoryClass(Class<?> clazz) {
- ref = new WeakReference<>(clazz);
+ ref = new WeakReference<Class<?>>(clazz);
}
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/InputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/InputBuffer.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/InputBuffer.java Sun Mar 13 10:59:08 2016
@@ -558,7 +558,7 @@ public class InputBuffer extends Reader
}
- private static B2CConverter createConverter(Charset charset) throws IOException {
+ private static B2CConverter createConverter(final Charset charset) throws IOException {
if (SecurityUtil.isPackageProtectionEnabled()){
try {
return AccessController.doPrivileged(
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/OutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/OutputBuffer.java Sun Mar 13 10:59:08 2016
@@ -567,7 +567,7 @@ public class OutputBuffer extends Writer
}
- private static Charset getCharset(String encoding) throws IOException {
+ private static Charset getCharset(final String encoding) throws IOException {
if (Globals.IS_SECURITY_ENABLED) {
try {
return AccessController.doPrivileged(
@@ -591,7 +591,7 @@ public class OutputBuffer extends Writer
}
- private static C2BConverter createConverter(Charset charset) throws IOException {
+ private static C2BConverter createConverter(final Charset charset) throws IOException {
if (Globals.IS_SECURITY_ENABLED){
try {
return AccessController.doPrivileged(
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java Sun Mar 13 10:59:08 2016
@@ -132,6 +132,11 @@ public final class CorsFilter extends Ge
@Override
+ public void destroy() {
+ // NOOP
+ }
+
+ @Override
public void doFilter(final ServletRequest servletRequest,
final ServletResponse servletResponse, final FilterChain filterChain)
throws IOException, ServletException {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java Sun Mar 13 10:59:08 2016
@@ -764,6 +764,11 @@ public class RemoteIpFilter extends Gene
*/
private Pattern trustedProxies = null;
+ @Override
+ public void destroy() {
+ // NOOP
+ }
+
public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
if (internalProxies != null &&
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java Sun Mar 13 10:59:08 2016
@@ -70,6 +70,11 @@ public class RequestDumperFilter extends
private static final Log log = LogFactory.getLog(RequestDumperFilter.class);
+ @Override
+ public void destroy() {
+ // NOOP
+ }
+
/**
* Log the interesting request parameters, invoke the next Filter in the
* sequence, and log the interesting response parameters.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java Sun Mar 13 10:59:08 2016
@@ -17,11 +17,9 @@
package org.apache.catalina.filters;
import java.io.IOException;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
-import java.util.function.Predicate;
import java.util.regex.Pattern;
import javax.servlet.FilterChain;
@@ -80,9 +78,8 @@ public class RestCsrfPreventionFilter ex
NON_MODIFYING_METHOD, MODIFYING_METHOD
}
- private static final Pattern NON_MODIFYING_METHODS_PATTERN = Pattern.compile("GET|HEAD|OPTIONS");
- private static final Predicate<String> nonModifyingMethods = m -> Objects.nonNull(m) &&
- NON_MODIFYING_METHODS_PATTERN.matcher(m).matches();
+ private static final Pattern NON_MODIFYING_METHODS_PATTERN = Pattern
+ .compile("GET|HEAD|OPTIONS");
private Set<String> pathsAcceptingParams = new HashSet<>();
@@ -92,10 +89,10 @@ public class RestCsrfPreventionFilter ex
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
- if (request instanceof HttpServletRequest &&
- response instanceof HttpServletResponse) {
+ if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
MethodType mType = MethodType.MODIFYING_METHOD;
- if (nonModifyingMethods.test(((HttpServletRequest) request).getMethod())) {
+ String method = ((HttpServletRequest) request).getMethod();
+ if (method != null && NON_MODIFYING_METHODS_PATTERN.matcher(method).matches()) {
mType = MethodType.NON_MODIFYING_METHOD;
}
@@ -116,33 +113,45 @@ public class RestCsrfPreventionFilter ex
chain.doFilter(request, response);
}
- private static interface RestCsrfPreventionStrategy {
- static final NonceSupplier<HttpServletRequest, String> nonceFromRequestHeader = (r, k) -> r
- .getHeader(k);
- static final NonceSupplier<HttpServletRequest, String[]> nonceFromRequestParams = (r, k) -> r
- .getParameterValues(k);
- static final NonceSupplier<HttpSession, String> nonceFromSession = (s, k) -> Objects
- .isNull(s) ? null : (String) s.getAttribute(k);
-
- static final NonceConsumer<HttpServletResponse> nonceToResponse = (r, k, v) -> r.setHeader(
- k, v);
- static final NonceConsumer<HttpSession> nonceToSession = (s, k, v) -> s.setAttribute(k, v);
+ private abstract static class RestCsrfPreventionStrategy {
- boolean apply(HttpServletRequest request, HttpServletResponse response) throws IOException;
+ abstract boolean apply(HttpServletRequest request, HttpServletResponse response)
+ throws IOException;
+
+ protected String extractNonceFromRequestHeader(HttpServletRequest request, String key) {
+ return request.getHeader(key);
+ }
+
+ protected String[] extractNonceFromRequestParams(HttpServletRequest request, String key) {
+ return request.getParameterValues(key);
+ }
+
+ protected void storeNonceToResponse(HttpServletResponse response, String key, String value) {
+ response.setHeader(key, value);
+ }
+
+ protected String extractNonceFromSession(HttpSession session, String key) {
+ return session == null ? null : (String) session.getAttribute(key);
+ }
+
+ protected void storeNonceToSession(HttpSession session, String key, Object value) {
+ session.setAttribute(key, value);
+ }
}
- private class StateChangingRequest implements RestCsrfPreventionStrategy {
+ private class StateChangingRequest extends RestCsrfPreventionStrategy {
@Override
public boolean apply(HttpServletRequest request, HttpServletResponse response)
throws IOException {
if (isValidStateChangingRequest(
extractNonceFromRequest(request),
- nonceFromSession.getNonce(request.getSession(false), Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME))) {
+ extractNonceFromSession(request.getSession(false),
+ Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME))) {
return true;
}
- nonceToResponse.setNonce(response, Constants.CSRF_REST_NONCE_HEADER_NAME,
+ storeNonceToResponse(response, Constants.CSRF_REST_NONCE_HEADER_NAME,
Constants.CSRF_REST_NONCE_HEADER_REQUIRED_VALUE);
response.sendError(getDenyStatus(),
sm.getString("restCsrfPreventionFilter.invalidNonce"));
@@ -150,14 +159,14 @@ public class RestCsrfPreventionFilter ex
}
private boolean isValidStateChangingRequest(String reqNonce, String sessionNonce) {
- return Objects.nonNull(reqNonce) && Objects.nonNull(sessionNonce)
+ return reqNonce != null && sessionNonce != null
&& Objects.equals(reqNonce, sessionNonce);
}
private String extractNonceFromRequest(HttpServletRequest request) {
- String nonceFromRequest = nonceFromRequestHeader.getNonce(request,
+ String nonceFromRequest = extractNonceFromRequestHeader(request,
Constants.CSRF_REST_NONCE_HEADER_NAME);
- if ((Objects.isNull(nonceFromRequest) || Objects.equals("", nonceFromRequest))
+ if ((nonceFromRequest == null || Objects.equals("", nonceFromRequest))
&& !getPathsAcceptingParams().isEmpty()
&& getPathsAcceptingParams().contains(getRequestedPath(request))) {
nonceFromRequest = extractNonceFromRequestParams(request);
@@ -166,9 +175,9 @@ public class RestCsrfPreventionFilter ex
}
private String extractNonceFromRequestParams(HttpServletRequest request) {
- String[] params = nonceFromRequestParams.getNonce(request,
+ String[] params = extractNonceFromRequestParams(request,
Constants.CSRF_REST_NONCE_HEADER_NAME);
- if (Objects.nonNull(params) && params.length > 0) {
+ if (params != null && params.length > 0) {
String nonce = params[0];
for (String param : params) {
if (!Objects.equals(param, nonce)) {
@@ -181,22 +190,21 @@ public class RestCsrfPreventionFilter ex
}
}
- private class FetchRequest implements RestCsrfPreventionStrategy {
- private final Predicate<String> fetchRequest = s -> Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE
- .equalsIgnoreCase(s);
+ private class FetchRequest extends RestCsrfPreventionStrategy {
@Override
public boolean apply(HttpServletRequest request, HttpServletResponse response) {
- if (fetchRequest.test(
- nonceFromRequestHeader.getNonce(request, Constants.CSRF_REST_NONCE_HEADER_NAME))) {
- String nonceFromSessionStr = nonceFromSession.getNonce(request.getSession(false),
+ if (Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE
+ .equalsIgnoreCase(extractNonceFromRequestHeader(request,
+ Constants.CSRF_REST_NONCE_HEADER_NAME))) {
+ String nonceFromSessionStr = extractNonceFromSession(request.getSession(false),
Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME);
if (nonceFromSessionStr == null) {
nonceFromSessionStr = generateNonce();
- nonceToSession.setNonce(Objects.requireNonNull(request.getSession(true)),
+ storeNonceToSession(Objects.requireNonNull(request.getSession(true)),
Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME, nonceFromSessionStr);
}
- nonceToResponse.setNonce(response, Constants.CSRF_REST_NONCE_HEADER_NAME,
+ storeNonceToResponse(response, Constants.CSRF_REST_NONCE_HEADER_NAME,
nonceFromSessionStr);
}
return true;
@@ -204,16 +212,6 @@ public class RestCsrfPreventionFilter ex
}
- @FunctionalInterface
- private static interface NonceSupplier<T, R> {
- R getNonce(T supplier, String key);
- }
-
- @FunctionalInterface
- private static interface NonceConsumer<T> {
- void setNonce(T consumer, String key, String value);
- }
-
/**
* A comma separated list of URLs that can accept nonces via request
* parameter 'X-CSRF-Token'. For use cases when a nonce information cannot
@@ -227,9 +225,10 @@ public class RestCsrfPreventionFilter ex
* accepting request parameters with nonce information.
*/
public void setPathsAcceptingParams(String pathsList) {
- if (Objects.nonNull(pathsList)) {
- Arrays.asList(pathsList.split(pathsDelimiter)).forEach(
- e -> pathsAcceptingParams.add(e.trim()));
+ if (pathsList != null) {
+ for (String element : pathsList.split(pathsDelimiter)) {
+ pathsAcceptingParams.add(element.trim());
+ }
}
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java Sun Mar 13 10:59:08 2016
@@ -19,6 +19,7 @@ package org.apache.catalina.filters;
import java.io.IOException;
import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
import javax.servlet.GenericFilter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
@@ -74,6 +75,16 @@ public class WebdavFixFilter extends Gen
private static final String UA_MINIDIR_5_2_3790 =
"Microsoft-WebDAV-MiniRedir/5.2.3790";
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ // NOOP
+ }
+
+ @Override
+ public void destroy() {
+ // NOOP
+ }
+
/**
* Check for the broken MS WebDAV client and if detected issue a re-direct
* that hopefully will cause the non-broken client to be used.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java Sun Mar 13 10:59:08 2016
@@ -93,8 +93,8 @@ public class MessageDispatchInterceptor
}
- public boolean addToQueue(ChannelMessage msg, Member[] destination,
- InterceptorPayload payload) {
+ public boolean addToQueue(final ChannelMessage msg, final Member[] destination,
+ final InterceptorPayload payload) {
Runnable r = new Runnable() {
@Override
public void run() {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java Sun Mar 13 10:59:08 2016
@@ -154,7 +154,7 @@ public class StaticMembershipInterceptor
if ( (Channel.SND_RX_SEQ&svc)==Channel.SND_RX_SEQ ) super.start(Channel.SND_RX_SEQ);
if ( (Channel.SND_TX_SEQ&svc)==Channel.SND_TX_SEQ ) super.start(Channel.SND_TX_SEQ);
final ChannelInterceptorBase base = this;
- for (Member member : members) {
+ for (final Member member : members) {
Thread t = new Thread() {
@Override
public void run() {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java Sun Mar 13 10:59:08 2016
@@ -112,7 +112,7 @@ public final class CustomObjectInputStre
reportedClasses = reportedClassCache.get(classLoader);
}
if (reportedClasses == null) {
- reportedClasses = Collections.newSetFromMap(new ConcurrentHashMap<>());
+ reportedClasses = Collections.newSetFromMap(new ConcurrentHashMap<String,Boolean>());
Set<String> original;
synchronized (reportedClassCache) {
original = reportedClassCache.putIfAbsent(classLoader, reportedClasses);
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java Sun Mar 13 10:59:08 2016
@@ -206,6 +206,12 @@ public class CrawlerSessionManagerValve
@Override
+ public void valueBound(HttpSessionBindingEvent event) {
+ // NOOP
+ }
+
+
+ @Override
public void valueUnbound(HttpSessionBindingEvent event) {
String clientIp = sessionIdClientIp.remove(event.getSession().getId());
if (clientIp != null) {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2Parser.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2Parser.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2Parser.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2Parser.java Sun Mar 13 10:59:08 2016
@@ -556,17 +556,9 @@ class Http2Parser {
*/
boolean fill(boolean block, byte[] data, int offset, int length) throws IOException;
- default boolean fill(boolean block, byte[] data) throws IOException {
- return fill(block, data, 0, data.length);
- }
+ boolean fill(boolean block, byte[] data) throws IOException;
- default boolean fill(boolean block, ByteBuffer data, int len) throws IOException {
- boolean result = fill(block, data.array(), data.arrayOffset(), len);
- if (result) {
- data.position(data.position() + len);
- }
- return result;
- }
+ boolean fill(boolean block, ByteBuffer data, int len) throws IOException;
int getMaxFrameSize();
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Sun Mar 13 10:59:08 2016
@@ -1055,6 +1055,20 @@ public class Http2UpgradeHandler extends
// ----------------------------------------------- Http2Parser.Input methods
@Override
+ public boolean fill(boolean block, byte[] data) throws IOException {
+ return fill(block, data, 0, data.length);
+ }
+
+ @Override
+ public boolean fill(boolean block, ByteBuffer data, int len) throws IOException {
+ boolean result = fill(block, data.array(), data.arrayOffset(), len);
+ if (result) {
+ data.position(data.position() + len);
+ }
+ return result;
+ }
+
+ @Override
public boolean fill(boolean block, byte[] data, int offset, int length) throws IOException {
int len = length;
int pos = offset;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java Sun Mar 13 10:59:08 2016
@@ -417,7 +417,7 @@ public class Stream extends AbstractStre
}
- private static void push(Http2UpgradeHandler handler, Request request, Stream stream)
+ private static void push(final Http2UpgradeHandler handler, final Request request, final Stream stream)
throws IOException {
if (org.apache.coyote.Constants.IS_SECURITY_ENABLED) {
try {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java Sun Mar 13 10:59:08 2016
@@ -332,23 +332,23 @@ public class PoolingConnection extends D
@SuppressWarnings({"rawtypes", "unchecked"}) // Unable to find way to avoid this
PoolablePreparedStatement pps = new PoolablePreparedStatement(
getDelegate().prepareStatement(key.getSql()), key, _pstmtPool, this);
- return new DefaultPooledObject<>(pps);
+ return new DefaultPooledObject<DelegatingPreparedStatement>(pps);
}
- return new DefaultPooledObject<>(
+ return new DefaultPooledObject<DelegatingPreparedStatement>(
new PoolableCallableStatement(getDelegate().prepareCall( key.getSql()), key, _pstmtPool, this));
} else if (null == key.getResultSetType() && null == key.getResultSetConcurrency()){
@SuppressWarnings({"rawtypes", "unchecked"}) // Unable to find way to avoid this
PoolablePreparedStatement pps = new PoolablePreparedStatement(
getDelegate().prepareStatement(key.getSql(), key.getAutoGeneratedKeys().intValue()), key, _pstmtPool, this);
- return new DefaultPooledObject<>(pps);
+ return new DefaultPooledObject<DelegatingPreparedStatement>(pps);
} else { // Both _resultSetType and _resultSetConcurrency are non-null here (both or neither are set by constructors)
if(key.getStmtType() == StatementType.PREPARED_STATEMENT) {
@SuppressWarnings({"rawtypes", "unchecked"}) // Unable to find way to avoid this
PoolablePreparedStatement pps = new PoolablePreparedStatement(getDelegate().prepareStatement(
key.getSql(), key.getResultSetType().intValue(),key.getResultSetConcurrency().intValue()), key, _pstmtPool, this);
- return new DefaultPooledObject<>(pps);
+ return new DefaultPooledObject<DelegatingPreparedStatement>(pps);
}
- return new DefaultPooledObject<>(
+ return new DefaultPooledObject<DelegatingPreparedStatement>(
new PoolableCallableStatement( getDelegate().prepareCall(
key.getSql(),key.getResultSetType().intValue(), key.getResultSetConcurrency().intValue()), key, _pstmtPool, this));
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Sun Mar 13 10:59:08 2016
@@ -1892,12 +1892,14 @@ public class AprEndpoint extends Abstrac
*/
HashMap<Long,Long> merged = new HashMap<>(startCount);
for (int n = 0; n < startCount; n++) {
- Long newValue = merged.merge(Long.valueOf(desc[2*n+1]), Long.valueOf(desc[2*n]),
- (v1, v2) -> Long.valueOf(v1.longValue() | v2.longValue()));
- if (log.isDebugEnabled()) {
- if (newValue.longValue() != desc[2*n]) {
+ Long old = merged.put(Long.valueOf(desc[2*n+1]), Long.valueOf(desc[2*n]));
+ if (old != null) {
+ // This was a replacement. Merge the old and new value
+ merged.put(Long.valueOf(desc[2*n+1]),
+ Long.valueOf(desc[2*n] | old.longValue()));
+ if (log.isDebugEnabled()) {
log.debug(sm.getString("endpoint.apr.pollMergeEvents",
- Long.valueOf(desc[2*n+1]), Long.valueOf(desc[2*n]), newValue));
+ Long.valueOf(desc[2*n+1]), Long.valueOf(desc[2*n]), old));
}
}
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Sun Mar 13 10:59:08 2016
@@ -661,7 +661,7 @@ public class Nio2Endpoint extends Abstra
}
};
- public Nio2SocketWrapper(Nio2Channel channel, Nio2Endpoint endpoint) {
+ public Nio2SocketWrapper(Nio2Channel channel, final Nio2Endpoint endpoint) {
super(channel, endpoint);
socketBufferHandler = channel.getBufHandler();
@@ -1102,7 +1102,7 @@ public class Nio2Endpoint extends Abstra
try {
if ((!block && readPending.tryAcquire()) || (block && readPending.tryAcquire(timeout, unit))) {
Nio2Endpoint.startInline();
- getSocket().read(dsts, offset, length, timeout, unit, state, new ScatterReadCompletionHandler<>());
+ getSocket().read(dsts, offset, length, timeout, unit, state, new ScatterReadCompletionHandler<A>());
Nio2Endpoint.endInline();
} else {
throw new ReadPendingException();
@@ -1131,7 +1131,7 @@ public class Nio2Endpoint extends Abstra
try {
if ((!block && writePending.tryAcquire()) || (block && writePending.tryAcquire(timeout, unit))) {
Nio2Endpoint.startInline();
- getSocket().write(srcs, offset, length, timeout, unit, state, new GatherWriteCompletionHandler<>());
+ getSocket().write(srcs, offset, length, timeout, unit, state, new GatherWriteCompletionHandler<A>());
Nio2Endpoint.endInline();
} else {
throw new WritePendingException();
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Sun Mar 13 10:59:08 2016
@@ -793,8 +793,8 @@ public class SecureNio2Channel extends N
@Override
public <A> void read(final ByteBuffer dst,
- long timeout, TimeUnit unit, final A attachment,
- CompletionHandler<Integer, ? super A> handler) {
+ final long timeout, final TimeUnit unit, final A attachment,
+ final CompletionHandler<Integer, ? super A> handler) {
// Check state
if (closing || closed) {
handler.completed(Integer.valueOf(-1), attachment);
@@ -889,9 +889,9 @@ public class SecureNio2Channel extends N
}
@Override
- public <A> void read(ByteBuffer[] dsts, int offset, int length,
- long timeout, TimeUnit unit, A attachment,
- CompletionHandler<Long, ? super A> handler) {
+ public <A> void read(final ByteBuffer[] dsts, final int offset, final int length,
+ final long timeout, final TimeUnit unit, final A attachment,
+ final CompletionHandler<Long, ? super A> handler) {
if (offset < 0 || dsts == null || (offset + length) > dsts.length) {
throw new IllegalArgumentException();
}
@@ -976,8 +976,8 @@ public class SecureNio2Channel extends N
}
@Override
- public <A> void write(ByteBuffer src, long timeout, TimeUnit unit,
- A attachment, CompletionHandler<Integer, ? super A> handler) {
+ public <A> void write(final ByteBuffer src, final long timeout, final TimeUnit unit,
+ final A attachment, final CompletionHandler<Integer, ? super A> handler) {
// Check state
if (closing || closed) {
handler.failed(new IOException(sm.getString("channel.nio.ssl.closing")), attachment);
@@ -1026,9 +1026,9 @@ public class SecureNio2Channel extends N
}
@Override
- public <A> void write(ByteBuffer[] srcs, int offset, int length,
- long timeout, TimeUnit unit, A attachment,
- CompletionHandler<Long, ? super A> handler) {
+ public <A> void write(final ByteBuffer[] srcs, final int offset, final int length,
+ final long timeout, final TimeUnit unit, final A attachment,
+ final CompletionHandler<Long, ? super A> handler) {
if ((offset < 0) || (length < 0) || (offset > srcs.length - length)) {
throw new IndexOutOfBoundsException();
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Sun Mar 13 10:59:08 2016
@@ -78,4 +78,11 @@ public class WsFilter extends GenericFil
UpgradeUtil.doUpgrade(sc, req, resp, mappingResult.getConfig(),
mappingResult.getPathParams());
}
+
+ @Override
+ public void destroy() {
+ // NO-OP
+ }
+
+
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java?rev=1734783&r1=1734782&r2=1734783&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java Sun Mar 13 10:59:08 2016
@@ -30,6 +30,12 @@ public class WsSessionListener implement
@Override
+ public void sessionCreated(HttpSessionEvent se) {
+ // NO-OP
+ }
+
+
+ @Override
public void sessionDestroyed(HttpSessionEvent se) {
wsServerContainer.closeAuthenticatedSession(se.getSession().getId());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org