Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/Handlers.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/Undertow.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/UndertowLogger.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/UndertowLogger_$logger.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/UndertowLogger_$logger.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/UndertowLogger_$logger.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,695 @@ +package io.undertow; + +import java.util.Locale; +import java.lang.IllegalStateException; +import java.io.Serializable; +import org.jboss.logging.DelegatingBasicLogger; +import java.net.InetSocketAddress; +import org.xnio.channels.ReadTimeoutException; +import io.undertow.protocols.ssl.SslConduit; +import java.lang.String; +import io.undertow.server.handlers.sse.ServerSentEventConnection.EventCallback; +import org.jboss.logging.Logger; +import java.net.URI; +import io.undertow.server.HttpServerExchange; +import org.xnio.channels.WriteTimeoutException; +import io.undertow.util.HeaderMap; +import io.undertow.server.ServerConnection.CloseListener; +import org.jboss.logging.BasicLogger; +import java.util.List; +import java.net.SocketAddress; +import java.lang.IllegalArgumentException; +import java.nio.file.Path; +import javax.annotation.processing.Generated; +import java.security.GeneralSecurityException; +import io.undertow.server.ServerConnection; +import java.io.IOException; +import java.lang.Exception; +import java.util.Date; +import java.util.concurrent.RejectedExecutionException; +import org.xnio.ssl.SslConnection; +import java.lang.Throwable; +import java.util.Arrays; +import java.net.InetAddress; +import io.undertow.util.HttpString; + + +import static org.jboss.logging.Logger.Level.ERROR; +import static org.jboss.logging.Logger.Level.INFO; +import static org.jboss.logging.Logger.Level.DEBUG; +import static org.jboss.logging.Logger.Level.WARN; + +/** + * Warning this class consists of generated code. + */ +@Generated(value = "org.jboss.logging.processor.generator.model.MessageLoggerImplementor", date = "2024-02-21T04:11:51-0300") +public class UndertowLogger_$logger extends DelegatingBasicLogger implements UndertowLogger, BasicLogger, Serializable { + private static final long serialVersionUID = 1L; + private static final String FQCN = UndertowLogger_$logger.class.getName(); + public UndertowLogger_$logger(final Logger log) { + super(log); + } + private static final Locale LOCALE = Locale.ROOT; + protected Locale getLoggingLocale() { + return LOCALE; + } + @Override + public final void exceptionProcessingRequest(final Throwable cause) { + super.log.logf(FQCN, ERROR, cause, exceptionProcessingRequest$str()); + } + protected String exceptionProcessingRequest$str() { + return "UT005001: An exception occurred processing the request"; + } + @Override + public final void ioExceptionReadingFromChannel(final IOException e) { + super.log.logf(FQCN, ERROR, e, ioExceptionReadingFromChannel$str()); + } + protected String ioExceptionReadingFromChannel$str() { + return "UT005003: IOException reading from channel"; + } + @Override + public final void cannotRemoveUploadedFile(final Path file) { + super.log.logf(FQCN, ERROR, null, cannotRemoveUploadedFile$str(), file); + } + protected String cannotRemoveUploadedFile$str() { + return "UT005005: Cannot remove uploaded file %s"; + } + @Override + public final void requestHeaderWasTooLarge(final SocketAddress address, final int size) { + super.log.logf(FQCN, DEBUG, null, requestHeaderWasTooLarge$str(), address, size); + } + protected String requestHeaderWasTooLarge$str() { + return "UT005006: Connection from %s terminated as request header was larger than %s"; + } + @Override + public final void requestWasNotFullyConsumed() { + super.log.logf(FQCN, DEBUG, null, requestWasNotFullyConsumed$str()); + } + protected String requestWasNotFullyConsumed$str() { + return "UT005007: Request was not fully consumed"; + } + @Override + public final void invalidTokenReceived(final String tokenName, final String tokenValue) { + super.log.logf(FQCN, DEBUG, null, invalidTokenReceived$str(), tokenName, tokenValue); + } + protected String invalidTokenReceived$str() { + return "UT005008: An invalid token '%s' with value '%s' has been received."; + } + @Override + public final void missingAuthorizationToken(final String tokenName) { + super.log.logf(FQCN, DEBUG, null, missingAuthorizationToken$str(), tokenName); + } + protected String missingAuthorizationToken$str() { + return "UT005009: A mandatory token %s is missing from the request."; + } + @Override + public final void authenticationFailed(final String userName, final String mechanism) { + super.log.logf(FQCN, DEBUG, null, authenticationFailed$str(), userName, mechanism); + } + protected String authenticationFailed$str() { + return "UT005010: Verification of authentication tokens for user '%s' has failed using mechanism '%s'."; + } + @Override + public final void ignoringAjpRequestWithPrefixCode(final byte prefix) { + super.log.logf(FQCN, ERROR, null, ignoringAjpRequestWithPrefixCode$str(), prefix); + } + protected String ignoringAjpRequestWithPrefixCode$str() { + return "UT005011: Ignoring AJP request with prefix %s"; + } + @Override + public final void ioException(final IOException e) { + super.log.logf(FQCN, DEBUG, e, ioException$str()); + } + protected String ioException$str() { + return "UT005013: An IOException occurred"; + } + @Override + public final void failedToParseRequest(final Throwable e) { + super.log.logf(FQCN, DEBUG, e, failedToParseRequest$str()); + } + protected String failedToParseRequest$str() { + return "UT005014: Failed to parse request"; + } + @Override + public final void errorRotatingAccessLog(final IOException e) { + super.log.logf(FQCN, ERROR, e, errorRotatingAccessLog$str()); + } + protected String errorRotatingAccessLog$str() { + return "UT005015: Error rotating access log"; + } + @Override + public final void errorWritingAccessLog(final IOException e) { + super.log.logf(FQCN, ERROR, e, errorWritingAccessLog$str()); + } + protected String errorWritingAccessLog$str() { + return "UT005016: Error writing access log"; + } + @Override + public final void unknownVariable(final String token) { + super.log.logf(FQCN, ERROR, null, unknownVariable$str(), token); + } + protected String unknownVariable$str() { + return "UT005017: Unknown variable %s. For the literal percent character use two percent characters: '%%'"; + } + @Override + public final void exceptionInvokingCloseListener(final CloseListener l, final Throwable e) { + super.log.logf(FQCN, ERROR, e, exceptionInvokingCloseListener$str(), l); + } + protected String exceptionInvokingCloseListener$str() { + return "UT005018: Exception invoking close listener %s"; + } + @Override + public final void errorWritingJDBCLog(final Exception e) { + super.log.logf(FQCN, ERROR, e, errorWritingJDBCLog$str()); + } + protected String errorWritingJDBCLog$str() { + return "UT005020: Error writing JDBC log"; + } + @Override + public final void exceptionGeneratingErrorPage(final Exception e, final String location) { + super.log.logf(FQCN, ERROR, e, exceptionGeneratingErrorPage$str(), location); + } + protected String exceptionGeneratingErrorPage$str() { + return "UT005022: Exception generating error page %s"; + } + @Override + public final void exceptionHandlingRequest(final Throwable t, final String requestURI) { + super.log.logf(FQCN, ERROR, t, exceptionHandlingRequest$str(), requestURI); + } + protected String exceptionHandlingRequest$str() { + return "UT005023: Exception handling request to %s"; + } + @Override + public final void couldNotRegisterChangeListener(final Exception e) { + super.log.logf(FQCN, ERROR, e, couldNotRegisterChangeListener$str()); + } + protected String couldNotRegisterChangeListener$str() { + return "UT005024: Could not register resource change listener for caching resource manager, automatic invalidation of cached resource will not work"; + } + @Override + public final void timingOutRequest(final String requestURI) { + super.log.logf(FQCN, ERROR, null, timingOutRequest$str(), requestURI); + } + protected String timingOutRequest$str() { + return "UT005027: Timing out request to %s"; + } + @Override + public final void proxyRequestFailed(final String requestURI, final Exception e) { + super.log.logf(FQCN, ERROR, e, proxyRequestFailed$str(), requestURI); + } + protected String proxyRequestFailed$str() { + return "UT005028: Proxy request to %s failed"; + } + @Override + public final void proxyFailedToConnectToBackend(final String requestURI, final URI uri) { + super.log.logf(FQCN, ERROR, null, proxyFailedToConnectToBackend$str(), requestURI, uri); + } + protected String proxyFailedToConnectToBackend$str() { + return "UT005031: Proxy request to %s could not connect to backend server %s"; + } + @Override + public final void listenerNotProgressing() { + super.log.logf(FQCN, ERROR, null, listenerNotProgressing$str()); + } + protected String listenerNotProgressing$str() { + return "UT005032: Listener not making progress on framed channel, closing channel to prevent infinite loop"; + } + @Override + public final void remoteEndpointFailedToSendInitialSettings(final int type) { + super.log.logf(FQCN, ERROR, null, remoteEndpointFailedToSendInitialSettings$str(), type); + } + protected String remoteEndpointFailedToSendInitialSettings$str() { + return "UT005034: Remote endpoint failed to send initial settings frame in HTTP2 connection, frame type %s"; + } + @Override + public final void parseRequestTimedOut(final SocketAddress remoteAddress) { + super.log.logf(FQCN, DEBUG, null, parseRequestTimedOut$str(), remoteAddress); + } + protected String parseRequestTimedOut$str() { + return "UT005035: Closing channel because of parse timeout for remote address %s"; + } + @Override + public final void noALPNFallback(final SocketAddress address) { + super.log.logf(FQCN, ERROR, null, noALPNFallback$str(), address); + } + protected String noALPNFallback$str() { + return "UT005036: ALPN negotiation failed for %s and no fallback defined, closing connection"; + } + @Override + public final void stickySessionCookieLengthTruncated(final String original, final String current) { + super.log.logf(FQCN, WARN, null, stickySessionCookieLengthTruncated$str(), original, current); + } + protected String stickySessionCookieLengthTruncated$str() { + return "UT005037: Name of the cookie containing the session id, %s, had been too long and was truncated to: %s"; + } + @Override + public final void balancerCreated(final int id, final String name, final boolean stickySession, final String stickySessionCookie, final String stickySessionPath, final boolean stickySessionRemove, final boolean stickySessionForce, final int waitWorker, final int maxattempts) { + super.log.logf(FQCN, DEBUG, null, balancerCreated$str(), id, name, stickySession, stickySessionCookie, stickySessionPath, stickySessionRemove, stickySessionForce, waitWorker, maxattempts); + } + protected String balancerCreated$str() { + return "UT005038: Balancer created: id: %s, name: %s, stickySession: %s, stickySessionCookie: %s, stickySessionPath: %s, stickySessionRemove: %s, stickySessionForce: %s, waitWorker: %s, maxattempts: %s"; + } + @Override + public final void proxyAdvertisementsStarted(final String address, final int frequency) { + super.log.logf(FQCN, INFO, null, proxyAdvertisementsStarted$str(), address, frequency); + } + protected String proxyAdvertisementsStarted$str() { + return "UT005039: Undertow starts mod_cluster proxy advertisements on %s with frequency %s ms"; + } + @Override + public final void proxyAdvertiseMessagePayload(final String payload) { + super.log.logf(FQCN, DEBUG, null, proxyAdvertiseMessagePayload$str(), payload); + } + protected String proxyAdvertiseMessagePayload$str() { + return "UT005040: Gonna send payload:\n%s"; + } + @Override + public final void proxyAdvertiseCannotSendMessage(final Exception e, final InetSocketAddress address) { + super.log.logf(FQCN, ERROR, e, proxyAdvertiseCannotSendMessage$str(), address); + } + protected String proxyAdvertiseCannotSendMessage$str() { + return "UT005041: Cannot send advertise message. Address: %s"; + } + @Override + public final void mcmpHandlerCreated() { + super.log.logf(FQCN, DEBUG, null, mcmpHandlerCreated$str()); + } + protected String mcmpHandlerCreated$str() { + return "UT005042: Undertow mod_cluster proxy MCMPHandler created"; + } + @Override + public final void mcmpProcessingError(final String type, final String errString) { + super.log.logf(FQCN, ERROR, null, mcmpProcessingError$str(), type, errString); + } + protected String mcmpProcessingError$str() { + return "UT005043: Error in processing MCMP commands: Type:%s, Mess: %s"; + } + @Override + public final void removingNode(final String jvmRoute) { + super.log.logf(FQCN, INFO, null, removingNode$str(), jvmRoute); + } + protected String removingNode$str() { + return "UT005044: Removing node %s"; + } + @Override + public final void registeringContext(final String contextPath, final String jvmRoute) { + super.log.logf(FQCN, INFO, null, registeringContext2$str(), contextPath, jvmRoute); + } + protected String registeringContext2$str() { + return "UT005045: Registering context %s, for node %s"; + } + @Override + public final void registeringContext(final String contextPath, final String jvmRoute, final List aliases) { + super.log.logf(FQCN, DEBUG, null, registeringContext3$str(), contextPath, jvmRoute, aliases); + } + protected String registeringContext3$str() { + return "UT005046: Registering context %s, for node %s, with aliases %s"; + } + @Override + public final void unregisteringContext(final String contextPath, final String jvmRoute) { + super.log.logf(FQCN, INFO, null, unregisteringContext$str(), contextPath, jvmRoute); + } + protected String unregisteringContext$str() { + return "UT005047: Unregistering context %s, from node %s"; + } + @Override + public final void nodeIsInError(final String jvmRoute) { + super.log.logf(FQCN, DEBUG, null, nodeIsInError$str(), jvmRoute); + } + protected String nodeIsInError$str() { + return "UT005048: Node %s in error"; + } + @Override + public final void nodeConfigCreated(final URI connectionURI, final String balancer, final String domain, final String jvmRoute, final boolean flushPackets, final int flushwait, final int ping, final long ttl, final int timeout, final int maxConnections, final int cacheConnections, final int requestQueueSize, final boolean queueNewRequests) { + super.log.logf(FQCN, DEBUG, null, nodeConfigCreated$str(), connectionURI, balancer, domain, jvmRoute, flushPackets, flushwait, ping, ttl, timeout, maxConnections, cacheConnections, requestQueueSize, queueNewRequests); + } + protected String nodeConfigCreated$str() { + return "UT005049: NodeConfig created: connectionURI: %s, balancer: %s, load balancing group: %s, jvmRoute: %s, flushPackets: %s, flushwait: %s, ping: %s,ttl: %s, timeout: %s, maxConnections: %s, cacheConnections: %s, requestQueueSize: %s, queueNewRequests: %s"; + } + @Override + public final void failedToProcessManagementReq(final Exception e) { + super.log.logf(FQCN, ERROR, e, failedToProcessManagementReq$str()); + } + protected String failedToProcessManagementReq$str() { + return "UT005050: Failed to process management request"; + } + @Override + public final void failedToSendPingResponse(final Exception e) { + super.log.logf(FQCN, ERROR, e, failedToSendPingResponse$str()); + } + protected String failedToSendPingResponse$str() { + return "UT005051: Failed to send ping response"; + } + @Override + public final void failedToSendPingResponseDBG(final Exception e, final String node, final String jvmRoute) { + super.log.logf(FQCN, DEBUG, e, failedToSendPingResponseDBG$str(), node, jvmRoute); + } + protected String failedToSendPingResponseDBG$str() { + return "UT005052: Failed to send ping response, node.getJvmRoute(): %s, jvmRoute: %s"; + } + @Override + public final void registeringNode(final String jvmRoute, final URI connectionURI) { + super.log.logf(FQCN, INFO, null, registeringNode$str(), jvmRoute, connectionURI); + } + protected String registeringNode$str() { + return "UT005053: Registering node %s, connection: %s"; + } + @Override + public final void mcmpKeyValue(final HttpString name, final String value) { + super.log.logf(FQCN, DEBUG, null, mcmpKeyValue$str(), name, value); + } + protected String mcmpKeyValue$str() { + return "UT005054: MCMP processing, key: %s, value: %s"; + } + @Override + public final void httpClientPingTask(final URI connection) { + super.log.logf(FQCN, DEBUG, null, httpClientPingTask$str(), connection); + } + protected String httpClientPingTask$str() { + return "UT005055: HttpClientPingTask run for connection: %s"; + } + @Override + public final void receivedNodeLoad(final String jvmRoute, final String loadValue) { + super.log.logf(FQCN, DEBUG, null, receivedNodeLoad$str(), jvmRoute, loadValue); + } + protected String receivedNodeLoad$str() { + return "UT005056: Received node load in STATUS message, node jvmRoute: %s, load: %s"; + } + @Override + public final void mcmpSendingResponse(final InetSocketAddress destination, final int status, final HeaderMap headers, final String response) { + super.log.logf(FQCN, DEBUG, null, mcmpSendingResponse$str(), destination, status, headers, response); + } + protected String mcmpSendingResponse$str() { + return "UT005057: Sending MCMP response to destination: %s, HTTP status: %s, Headers: %s, response: %s"; + } + @Override + public final void potentialCrossTalking(final InetAddress group, final String s, final String localizedMessage) { + super.log.logf(FQCN, WARN, null, potentialCrossTalking$str(), group, s, localizedMessage); + } + protected String potentialCrossTalking$str() { + return "UT005058: Could not bind multicast socket to %s (%s address): %s; make sure your multicast address is of the same type as the IP stack (IPv4 or IPv6). Multicast socket will not be bound to an address, but this may lead to cross talking (see http://www.jboss.org/community/docs/DOC-9469 for details)."; + } + @Override + public final void oldStylePredicateSyntax(final String string) { + super.log.logf(FQCN, WARN, null, oldStylePredicateSyntax$str(), string); + } + protected String oldStylePredicateSyntax$str() { + return "UT005060: Predicate %s uses old style square braces to define predicates, which will be removed in a future release. predicate[value] should be changed to predicate(value)"; + } + protected String maxRestartsExceeded$str() { + return "UT005061: More than %s restarts detected, breaking assumed infinite loop"; + } + @Override + public final IllegalStateException maxRestartsExceeded(final int maxRestarts) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), maxRestartsExceeded$str(), maxRestarts)); + _copyStackTraceMinusOne(result); + return result; + } + private static void _copyStackTraceMinusOne(final Throwable e) { + final StackTraceElement[] st = e.getStackTrace(); + e.setStackTrace(Arrays.copyOfRange(st, 1, st.length)); + } + @Override + public final void extendedAccessLogPatternParseError(final Throwable t) { + super.log.logf(FQCN, ERROR, t, extendedAccessLogPatternParseError$str()); + } + protected String extendedAccessLogPatternParseError$str() { + return "UT005062: Pattern parse error"; + } + @Override + public final void extendedAccessLogUnknownToken(final String token) { + super.log.logf(FQCN, ERROR, null, extendedAccessLogUnknownToken$str(), token); + } + protected String extendedAccessLogUnknownToken$str() { + return "UT005063: Unable to decode with rest of chars starting: %s"; + } + @Override + public final void extendedAccessLogMissingClosing() { + super.log.logf(FQCN, ERROR, null, extendedAccessLogMissingClosing$str()); + } + protected String extendedAccessLogMissingClosing$str() { + return "UT005064: No closing ) found for in decode"; + } + @Override + public final void extendedAccessLogCannotDecode(final String chars) { + super.log.logf(FQCN, ERROR, null, extendedAccessLogCannotDecode$str(), chars); + } + protected String extendedAccessLogCannotDecode$str() { + return "UT005065: The next characters couldn't be decoded: %s"; + } + @Override + public final void extendedAccessLogCannotDecodeXParamValue(final String value) { + super.log.logf(FQCN, ERROR, null, extendedAccessLogCannotDecodeXParamValue$str(), value); + } + protected String extendedAccessLogCannotDecodeXParamValue$str() { + return "UT005066: X param for servlet request, couldn't decode value: %s"; + } + @Override + public final void extendedAccessLogBadXParam() { + super.log.logf(FQCN, ERROR, null, extendedAccessLogBadXParam$str()); + } + protected String extendedAccessLogBadXParam$str() { + return "UT005067: X param in wrong format. Needs to be 'x-#(...)'"; + } + @Override + public final void extendedAccessLogEmptyPattern() { + super.log.logf(FQCN, INFO, null, extendedAccessLogEmptyPattern$str()); + } + protected String extendedAccessLogEmptyPattern$str() { + return "UT005068: Pattern was just empty or whitespace"; + } + @Override + public final void failedToWriteJdbcAccessLog(final Exception e) { + super.log.logf(FQCN, ERROR, e, failedToWriteJdbcAccessLog$str()); + } + protected String failedToWriteJdbcAccessLog$str() { + return "UT005069: Failed to write JDBC access log"; + } + @Override + public final void failedToWritePreCachedFile() { + super.log.logf(FQCN, ERROR, null, failedToWritePreCachedFile$str()); + } + protected String failedToWritePreCachedFile$str() { + return "UT005070: Failed to write pre-cached file"; + } + @Override + public final void undertowRequestFailed(final Throwable t, final HttpServerExchange exchange) { + super.log.logf(FQCN, ERROR, t, undertowRequestFailed$str(), exchange); + } + protected String undertowRequestFailed$str() { + return "UT005071: Undertow request failed %s"; + } + @Override + public final void stuckThreadDetected(final String threadName, final long threadId, final long active, final Date start, final String requestUri, final int threshold, final int stuckCount, final Throwable stackTrace) { + super.log.logf(FQCN, WARN, stackTrace, stuckThreadDetected$str(), threadName, threadId, active, start, requestUri, threshold, stuckCount); + } + protected String stuckThreadDetected$str() { + return "UT005072: Thread %s (id=%s) has been active for %s milliseconds (since %s) to serve the same request for %s and may be stuck (configured threshold for this StuckThreadDetectionValve is %s seconds). There is/are %s thread(s) in total that are monitored by this Valve and may be stuck."; + } + @Override + public final void stuckThreadCompleted(final String threadName, final long threadId, final long active, final int stuckCount) { + super.log.logf(FQCN, WARN, null, stuckThreadCompleted$str(), threadName, threadId, active, stuckCount); + } + protected String stuckThreadCompleted$str() { + return "UT005073: Thread %s (id=%s) was previously reported to be stuck but has completed. It was active for approximately %s milliseconds. There is/are still %s thread(s) that are monitored by this Valve and may be stuck."; + } + @Override + public final void failedToInvokeFailedCallback(final EventCallback callback, final Exception e) { + super.log.logf(FQCN, ERROR, e, failedToInvokeFailedCallback$str(), callback); + } + protected String failedToInvokeFailedCallback$str() { + return "UT005074: Failed to invoke error callback %s for SSE task"; + } + protected String unableToResolveModClusterManagementHost$str() { + return "UT005075: Unable to resolve mod_cluster management host's address for '%s'"; + } + @Override + public final IllegalStateException unableToResolveModClusterManagementHost(final String providedHost) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), unableToResolveModClusterManagementHost$str(), providedHost)); + _copyStackTraceMinusOne(result); + return result; + } + @Override + public final void sslReadLoopDetected(final SslConduit sslConduit) { + super.log.logf(FQCN, ERROR, null, sslReadLoopDetected$str(), sslConduit); + } + protected String sslReadLoopDetected$str() { + return "UT005076: SSL read loop detected. This should not happen, please report this to the Undertow developers. Current state %s"; + } + @Override + public final void sslBufferOverflow(final SslConduit sslConduit) { + super.log.logf(FQCN, ERROR, null, sslBufferOverflow$str(), sslConduit); + } + protected String sslBufferOverflow$str() { + return "UT005077: SSL unwrap buffer overflow detected. This should not happen, please report this to the Undertow developers. Current state %s"; + } + @Override + public final void alpnConnectionFailed(final SslConnection connection) { + super.log.logf(FQCN, ERROR, null, alpnConnectionFailed$str(), connection); + } + protected String alpnConnectionFailed$str() { + return "UT005079: ALPN negotiation on %s failed"; + } + @Override + public final void resumedAndDispatched() { + super.log.logf(FQCN, ERROR, null, resumedAndDispatched$str()); + } + protected String resumedAndDispatched$str() { + return "UT005080: HttpServerExchange cannot have both async IO resumed and dispatch() called in the same cycle"; + } + @Override + public final void cannotProxyStartedRequest(final HttpServerExchange exchange) { + super.log.logf(FQCN, ERROR, null, cannotProxyStartedRequest$str(), exchange); + } + protected String cannotProxyStartedRequest$str() { + return "UT005081: Response has already been started, cannot proxy request %s"; + } + protected String cannotUseWildcardAddressAsModClusterManagementHost$str() { + return "UT005082: Configured mod_cluster management host address cannot be a wildcard address (%s)!"; + } + @Override + public final IllegalArgumentException cannotUseWildcardAddressAsModClusterManagementHost(final String providedAddress) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), cannotUseWildcardAddressAsModClusterManagementHost$str(), providedAddress)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unexpectedEndOfCompressedInput$str() { + return "UT005083: Unexpected end of compressed input"; + } + @Override + public final IOException unexpectedEndOfCompressedInput() { + final IOException result = new IOException(String.format(getLoggingLocale(), unexpectedEndOfCompressedInput$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String dataLargerThanContentLength$str() { + return "UT005084: Attempted to write %s bytes however content-length has been set to %s"; + } + @Override + public final IOException dataLargerThanContentLength(final long totalToWrite, final long responseContentLength) { + final IOException result = new IOException(String.format(getLoggingLocale(), dataLargerThanContentLength$str(), totalToWrite, responseContentLength)); + _copyStackTraceMinusOne(result); + return result; + } + @Override + public final void responseWasNotTerminated(final ServerConnection connection, final HttpServerExchange exchange) { + super.log.logf(FQCN, DEBUG, null, responseWasNotTerminated$str(), connection, exchange); + } + protected String responseWasNotTerminated$str() { + return "UT005085: Connection %s for exchange %s was not closed cleanly, forcibly closing connection"; + } + @Override + public final void failedToAcceptSSLRequest(final Exception e) { + super.log.logf(FQCN, ERROR, e, failedToAcceptSSLRequest$str()); + } + protected String failedToAcceptSSLRequest$str() { + return "UT005086: Failed to accept SSL request"; + } + @Override + public final void closeAsyncFailed(final IOException e) { + super.log.logf(FQCN, ERROR, e, closeAsyncFailed$str()); + } + protected String closeAsyncFailed$str() { + return "UT005088: Failed to execute ServletOutputStream.closeAsync() on IO thread"; + } + protected String nullParameter$str() { + return "UT005089: Method parameter '%s' cannot be null"; + } + @Override + public final IllegalArgumentException nullParameter(final String name) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), nullParameter$str(), name)); + _copyStackTraceMinusOne(result); + return result; + } + @Override + public final void handleUnexpectedFailure(final Throwable t) { + super.log.logf(FQCN, ERROR, t, handleUnexpectedFailure$str()); + } + protected String handleUnexpectedFailure$str() { + return "UT005090: Unexpected failure"; + } + @Override + public final void directBufferDeallocatorInitializationFailed(final Throwable t) { + super.log.logf(FQCN, ERROR, t, directBufferDeallocatorInitializationFailed$str()); + } + protected String directBufferDeallocatorInitializationFailed$str() { + return "UT005091: Failed to initialize DirectByteBufferDeallocator"; + } + @Override + public final void directBufferDeallocationFailed(final Throwable t) { + super.log.logf(FQCN, DEBUG, t, directBufferDeallocationFailed$str()); + } + protected String directBufferDeallocationFailed$str() { + return "UT005092: Failed to free direct buffer"; + } + @Override + public final void blockingReadTimedOut(final ReadTimeoutException rte) { + super.log.logf(FQCN, DEBUG, rte, blockingReadTimedOut$str()); + } + protected String blockingReadTimedOut$str() { + return "UT005093: Blocking read timed out"; + } + @Override + public final void blockingWriteTimedOut(final WriteTimeoutException rte) { + super.log.logf(FQCN, DEBUG, rte, blockingWriteTimedOut$str()); + } + protected String blockingWriteTimedOut$str() { + return "UT005094: Blocking write timed out"; + } + @Override + public final void sslEngineDelegatedTaskRejected(final RejectedExecutionException ree) { + super.log.logf(FQCN, DEBUG, ree, sslEngineDelegatedTaskRejected$str()); + } + protected String sslEngineDelegatedTaskRejected$str() { + return "UT005095: SSLEngine delegated task was rejected"; + } + @Override + public final void authenticationFailedFor(final String header, final HttpServerExchange exchange, final Exception e) { + super.log.logf(FQCN, DEBUG, e, authenticationFailedFor$str(), header, exchange); + } + protected String authenticationFailedFor$str() { + return "UT005096: Authentication failed for digest header %s in %s"; + } + @Override + public final void failedToObtainSubject(final HttpServerExchange exchange, final GeneralSecurityException e) { + super.log.logf(FQCN, DEBUG, e, failedToObtainSubject$str(), exchange); + } + protected String failedToObtainSubject$str() { + return "UT005097: Failed to obtain subject for %s"; + } + @Override + public final void failedToNegotiateAtGSSAPI(final HttpServerExchange exchange, final Throwable e) { + super.log.logf(FQCN, DEBUG, e, failedToNegotiateAtGSSAPI$str(), exchange); + } + protected String failedToNegotiateAtGSSAPI$str() { + return "UT005098: GSSAPI negotiation failed for %s"; + } + @Override + public final void failedToCreateSSOForSession(final String sessionId) { + super.log.logf(FQCN, WARN, null, failedToCreateSSOForSession$str(), sessionId); + } + protected String failedToCreateSSOForSession$str() { + return "UT005099: Failed to create SSO for session '%s'"; + } + @Override + public final void failedToListPathsForFile(final Path f) { + super.log.logf(FQCN, DEBUG, null, failedToListPathsForFile$str(), f); + } + protected String failedToListPathsForFile$str() { + return "UT005100: Failed to list paths for '%s'"; + } + @Override + public final void noSourceToListResourcesFrom() { + super.log.logf(FQCN, DEBUG, null, noSourceToListResourcesFrom$str()); + } + protected String noSourceToListResourcesFrom$str() { + return "UT005101: No source to list resources from"; + } + @Override + public final void noFrameflushInTimeout(final long timeoutMiliseconds) { + super.log.logf(FQCN, WARN, null, noFrameflushInTimeout$str(), timeoutMiliseconds); + } + protected String noFrameflushInTimeout$str() { + return "UT005102: Flushing waiting in a frame more than %s miliseconds. The framed channel will be forcibly closed."; + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/UndertowMessages.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/UndertowMessages_$bundle.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/UndertowMessages_$bundle.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/UndertowMessages_$bundle.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,1605 @@ +package io.undertow; + +import java.util.Locale; +import java.lang.IllegalStateException; +import java.io.Serializable; +import io.undertow.util.ParameterLimitException; +import io.undertow.protocols.http2.HpackException; +import org.xnio.channels.ReadTimeoutException; +import java.lang.String; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLHandshakeException; +import org.xnio.channels.WriteTimeoutException; +import java.lang.RuntimeException; +import java.lang.NullPointerException; +import io.undertow.server.handlers.form.MultiPartParserDefinition.FileTooLargeException; +import io.undertow.util.UrlDecodeException; +import java.lang.IllegalArgumentException; +import java.nio.file.Path; +import java.nio.channels.ClosedChannelException; +import javax.annotation.processing.Generated; +import io.undertow.security.api.AuthenticationMechanism; +import io.undertow.server.RequestTooBigException; +import javax.net.ssl.SSLPeerUnverifiedException; +import java.io.IOException; +import java.lang.Exception; +import java.lang.Long; +import io.undertow.util.BadRequestException; +import java.lang.Throwable; +import java.lang.Class; +import java.lang.Object; +import java.util.Arrays; +import io.undertow.util.HttpString; + +/** + * Warning this class consists of generated code. + */ +@Generated(value = "org.jboss.logging.processor.generator.model.MessageBundleImplementor", date = "2024-02-21T04:11:51-0300") +public class UndertowMessages_$bundle implements UndertowMessages, Serializable { + private static final long serialVersionUID = 1L; + protected UndertowMessages_$bundle() {} + public static final UndertowMessages_$bundle INSTANCE = new UndertowMessages_$bundle(); + protected Object readResolve() { + return INSTANCE; + } + private static final Locale LOCALE = Locale.ROOT; + protected Locale getLoggingLocale() { + return LOCALE; + } + protected String maximumConcurrentRequestsMustBeLargerThanZero$str() { + return "UT000001: Maximum concurrent requests must be larger than zero."; + } + @Override + public final IllegalArgumentException maximumConcurrentRequestsMustBeLargerThanZero() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), maximumConcurrentRequestsMustBeLargerThanZero$str())); + _copyStackTraceMinusOne(result); + return result; + } + private static void _copyStackTraceMinusOne(final Throwable e) { + final StackTraceElement[] st = e.getStackTrace(); + e.setStackTrace(Arrays.copyOfRange(st, 1, st.length)); + } + protected String responseAlreadyStarted$str() { + return "UT000002: The response has already been started"; + } + @Override + public final IllegalStateException responseAlreadyStarted() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), responseAlreadyStarted$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String responseChannelAlreadyProvided$str() { + return "UT000004: getResponseChannel() has already been called"; + } + @Override + public final IllegalStateException responseChannelAlreadyProvided() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), responseChannelAlreadyProvided$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String requestChannelAlreadyProvided$str() { + return "UT000005: getRequestChannel() has already been called"; + } + @Override + public final IllegalStateException requestChannelAlreadyProvided() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), requestChannelAlreadyProvided$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String handlerCannotBeNull$str() { + return "UT000008: Handler cannot be null"; + } + @Override + public final IllegalArgumentException handlerCannotBeNull() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), handlerCannotBeNull$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String pathMustBeSpecified$str() { + return "UT000009: Path must be specified"; + } + @Override + public final IllegalArgumentException pathMustBeSpecified() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), pathMustBeSpecified$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String sessionIsInvalid$str() { + return "UT000010: Session is invalid %s"; + } + @Override + public final IllegalStateException sessionIsInvalid(final String sessionId) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), sessionIsInvalid$str(), sessionId)); + _copyStackTraceMinusOne(result); + return result; + } + protected String sessionManagerMustNotBeNull$str() { + return "UT000011: Session manager must not be null"; + } + @Override + public final IllegalStateException sessionManagerMustNotBeNull() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), sessionManagerMustNotBeNull$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String sessionManagerNotFound$str() { + return "UT000012: Session manager was not attached to the request. Make sure that the SessionAttachmentHandler is installed in the handler chain"; + } + @Override + public final IllegalStateException sessionManagerNotFound() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), sessionManagerNotFound$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String argumentCannotBeNull$str() { + return "UT000013: Argument %s cannot be null"; + } + @Override + public final IllegalArgumentException argumentCannotBeNull(final String argument) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), argumentCannotBeNull$str(), argument)); + _copyStackTraceMinusOne(result); + return result; + } + protected String formValueIsAFile$str() { + return "UT000017: Form value is a file, use getFileItem() instead"; + } + @Override + public final IllegalStateException formValueIsAFile() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), formValueIsAFile$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String formValueIsAString$str() { + return "UT000018: Form value is a String, use getValue() instead"; + } + @Override + public final IllegalStateException formValueIsAString() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), formValueIsAString$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String requestEntityWasTooLarge$str() { + return "UT000020: Connection terminated as request was larger than %s"; + } + @Override + public final RequestTooBigException requestEntityWasTooLarge(final long size) { + final RequestTooBigException result = new RequestTooBigException(String.format(getLoggingLocale(), requestEntityWasTooLarge$str(), size)); + _copyStackTraceMinusOne(result); + return result; + } + protected String sessionAlreadyInvalidated$str() { + return "UT000021: Session already invalidated"; + } + @Override + public final IllegalStateException sessionAlreadyInvalidated() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), sessionAlreadyInvalidated$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String hashAlgorithmNotFound$str() { + return "UT000022: The specified hash algorithm '%s' can not be found."; + } + @Override + public final IllegalArgumentException hashAlgorithmNotFound(final String algorithmName) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), hashAlgorithmNotFound$str(), algorithmName)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidBase64Token$str() { + return "UT000023: An invalid Base64 token has been received."; + } + @Override + public final IllegalArgumentException invalidBase64Token(final IOException cause) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidBase64Token$str()), cause); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidNonceReceived$str() { + return "UT000024: An invalidly formatted nonce has been received."; + } + @Override + public final IllegalArgumentException invalidNonceReceived() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidNonceReceived$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String unexpectedTokenInHeader$str() { + return "UT000025: Unexpected token '%s' within header."; + } + @Override + public final IllegalArgumentException unexpectedTokenInHeader(final String name) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), unexpectedTokenInHeader$str(), name)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidHeader$str() { + return "UT000026: Invalid header received."; + } + @Override + public final IllegalArgumentException invalidHeader() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotFindSessionCookieConfig$str() { + return "UT000027: Could not find session cookie config in the request"; + } + @Override + public final IllegalStateException couldNotFindSessionCookieConfig() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), couldNotFindSessionCookieConfig$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String chunkedChannelClosedMidChunk$str() { + return "UT000029: Channel was closed mid chunk, if you have attempted to write chunked data you cannot shutdown the channel until after it has all been written."; + } + @Override + public final IOException chunkedChannelClosedMidChunk() { + final IOException result = new IOException(String.format(getLoggingLocale(), chunkedChannelClosedMidChunk$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String userAuthenticated$str() { + return "UT000030: User %s successfully authenticated."; + } + @Override + public final String userAuthenticated(final String userName) { + return String.format(getLoggingLocale(), userAuthenticated$str(), userName); + } + protected String userLoggedOut$str() { + return "UT000031: User %s has logged out."; + } + @Override + public final String userLoggedOut(final String userName) { + return String.format(getLoggingLocale(), userLoggedOut$str(), userName); + } + protected String streamIsClosed$str() { + return "UT000034: Stream is closed"; + } + @Override + public final IOException streamIsClosed() { + final IOException result = new IOException(String.format(getLoggingLocale(), streamIsClosed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String startBlockingHasNotBeenCalled$str() { + return "UT000035: Cannot get stream as startBlocking has not been invoked"; + } + @Override + public final IllegalStateException startBlockingHasNotBeenCalled() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), startBlockingHasNotBeenCalled$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String connectionTerminatedReadingMultiPartData$str() { + return "UT000036: Connection terminated parsing multipart data"; + } + @Override + public final IOException connectionTerminatedReadingMultiPartData() { + final IOException result = new IOException(String.format(getLoggingLocale(), connectionTerminatedReadingMultiPartData$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToParsePath$str() { + return "UT000037: Failed to parse path in HTTP request"; + } + @Override + public final RuntimeException failedToParsePath() { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), failedToParsePath$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String authenticationFailed$str() { + return "UT000038: Authentication failed, requested user name '%s'"; + } + @Override + public final String authenticationFailed(final String userName) { + return String.format(getLoggingLocale(), authenticationFailed$str(), userName); + } + protected String tooManyQueryParameters$str() { + return "UT000039: Too many query parameters, cannot have more than %s query parameters"; + } + @Override + public final BadRequestException tooManyQueryParameters(final int noParams) { + final BadRequestException result = new BadRequestException(String.format(getLoggingLocale(), tooManyQueryParameters$str(), noParams)); + _copyStackTraceMinusOne(result); + return result; + } + protected String tooManyHeaders$str() { + return "UT000040: Too many headers, cannot have more than %s header"; + } + @Override + public final String tooManyHeaders(final int noParams) { + return String.format(getLoggingLocale(), tooManyHeaders$str(), noParams); + } + protected String channelIsClosed$str() { + return "UT000041: Channel is closed"; + } + @Override + public final ClosedChannelException channelIsClosed() { + final ClosedChannelException result = new ClosedChannelException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotDecodeTrailers$str() { + return "UT000042: Could not decode trailers in HTTP request"; + } + @Override + public final IOException couldNotDecodeTrailers() { + final IOException result = new IOException(String.format(getLoggingLocale(), couldNotDecodeTrailers$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String dataAlreadyQueued$str() { + return "UT000043: Data is already being sent. You must wait for the completion callback to be be invoked before calling send() again"; + } + @Override + public final IllegalStateException dataAlreadyQueued() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), dataAlreadyQueued$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String moreThanOnePredicateWithName$str() { + return "UT000044: More than one predicate with name %s. Builder class %s and %s"; + } + @Override + public final IllegalStateException moreThanOnePredicateWithName(final String name, final Class aClass, final Class existing) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), moreThanOnePredicateWithName$str(), name, aClass, existing)); + _copyStackTraceMinusOne(result); + return result; + } + protected String errorParsingPredicateString$str() { + return "UT000045: Error parsing predicated handler string %s:%n%s"; + } + @Override + public final IllegalArgumentException errorParsingPredicateString(final String reason, final String s) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), errorParsingPredicateString$str(), reason, s)); + _copyStackTraceMinusOne(result); + return result; + } + protected String tooManyCookies$str() { + return "UT000046: The number of cookies sent exceeded the maximum of %s"; + } + @Override + public final IllegalStateException tooManyCookies(final int maxCookies) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), tooManyCookies$str(), maxCookies)); + _copyStackTraceMinusOne(result); + return result; + } + protected String tooManyParameters$str() { + return "UT000047: The number of parameters exceeded the maximum of %s"; + } + @Override + public final ParameterLimitException tooManyParameters(final int maxValues) { + final ParameterLimitException result = new ParameterLimitException(String.format(getLoggingLocale(), tooManyParameters$str(), maxValues)); + _copyStackTraceMinusOne(result); + return result; + } + protected String noRequestActive$str() { + return "UT000048: No request is currently active"; + } + @Override + public final IllegalStateException noRequestActive() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), noRequestActive$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String authMechanismOutcomeNull$str() { + return "UT000050: AuthenticationMechanism Outcome is null"; + } + @Override + public final IllegalStateException authMechanismOutcomeNull() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), authMechanismOutcomeNull$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String notAValidIpPattern$str() { + return "UT000051: Not a valid IP pattern %s"; + } + @Override + public final IllegalArgumentException notAValidIpPattern(final String peer) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), notAValidIpPattern$str(), peer)); + _copyStackTraceMinusOne(result); + return result; + } + protected String noSessionData$str() { + return "UT000052: Session data requested when non session based authentication in use"; + } + @Override + public final IllegalStateException noSessionData() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), noSessionData$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String listenerAlreadyRegistered$str() { + return "UT000053: Listener %s already registered"; + } + @Override + public final IllegalArgumentException listenerAlreadyRegistered(final String name) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), listenerAlreadyRegistered$str(), name)); + _copyStackTraceMinusOne(result); + return result; + } + protected String maxFileSizeExceeded$str() { + return "UT000054: The maximum size %s for an individual file in a multipart request was exceeded"; + } + @Override + public final FileTooLargeException maxFileSizeExceeded(final long maxIndividualFileSize) { + final FileTooLargeException result = new FileTooLargeException(String.format(getLoggingLocale(), maxFileSizeExceeded$str(), maxIndividualFileSize)); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotSetAttribute$str() { + return "UT000055: Could not set attribute %s to %s as it is read only"; + } + @Override + public final String couldNotSetAttribute(final String attributeName, final String newValue) { + return String.format(getLoggingLocale(), couldNotSetAttribute$str(), attributeName, newValue); + } + protected String couldNotParseUriTemplate$str() { + return "UT000056: Could not parse URI template %s, exception at char %s"; + } + @Override + public final RuntimeException couldNotParseUriTemplate(final String path, final int i) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), couldNotParseUriTemplate$str(), path, i)); + _copyStackTraceMinusOne(result); + return result; + } + protected String mismatchedBraces$str() { + return "UT000057: Mismatched braces in attribute string %s"; + } + @Override + public final RuntimeException mismatchedBraces(final String valueString) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), mismatchedBraces$str(), valueString)); + _copyStackTraceMinusOne(result); + return result; + } + protected String moreThanOneHandlerWithName$str() { + return "UT000058: More than one handler with name %s. Builder class %s and %s"; + } + @Override + public final IllegalStateException moreThanOneHandlerWithName(final String name, final Class aClass, final Class existing) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), moreThanOneHandlerWithName$str(), name, aClass, existing)); + _copyStackTraceMinusOne(result); + return result; + } + protected String outOfBandResponseOnlyAllowedFor100Continue$str() { + return "UT000061: Out of band responses only allowed for 100-continue requests"; + } + @Override + public final IllegalArgumentException outOfBandResponseOnlyAllowedFor100Continue() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), outOfBandResponseOnlyAllowedFor100Continue$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String sslWasNull$str() { + return "UT000065: SSL must be specified to connect to a https URL"; + } + @Override + public final IOException sslWasNull() { + final IOException result = new IOException(String.format(getLoggingLocale(), sslWasNull$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String wrongMagicNumber$str() { + return "UT000066: Incorrect magic number %s for AJP packet header"; + } + @Override + public final IOException wrongMagicNumber(final int number) { + final IOException result = new IOException(String.format(getLoggingLocale(), wrongMagicNumber$str(), number)); + _copyStackTraceMinusOne(result); + return result; + } + protected String peerUnverified$str() { + return "UT000067: No client cert was provided"; + } + @Override + public final SSLPeerUnverifiedException peerUnverified() { + final SSLPeerUnverifiedException result = new SSLPeerUnverifiedException(String.format(getLoggingLocale(), peerUnverified$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String servletPathMatchFailed$str() { + return "UT000068: Servlet path match failed"; + } + @Override + public final IllegalArgumentException servletPathMatchFailed() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), servletPathMatchFailed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotParseCookie$str() { + return "UT000069: Could not parse set cookie header %s"; + } + @Override + public final IllegalArgumentException couldNotParseCookie(final String headerValue) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), couldNotParseCookie$str(), headerValue)); + _copyStackTraceMinusOne(result); + return result; + } + protected String canOnlyBeCalledByIoThread$str() { + return "UT000070: method can only be called by IO thread"; + } + @Override + public final IllegalStateException canOnlyBeCalledByIoThread() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), canOnlyBeCalledByIoThread$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String matcherAlreadyContainsTemplate$str() { + return "UT000071: Cannot add path template %s, matcher already contains an equivalent pattern %s"; + } + @Override + public final IllegalStateException matcherAlreadyContainsTemplate(final String templateString, final String templateString1) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), matcherAlreadyContainsTemplate$str(), templateString, templateString1)); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToDecodeURL$str() { + return "UT000072: Failed to decode url %s to charset %s"; + } + @Override + public final UrlDecodeException failedToDecodeURL(final String s, final String enc, final Exception e) { + final UrlDecodeException result = new UrlDecodeException(String.format(getLoggingLocale(), failedToDecodeURL$str(), s, enc), e); + _copyStackTraceMinusOne(result); + return result; + } + protected String resourceChangeListenerNotSupported$str() { + return "UT000073: Resource change listeners are not supported"; + } + @Override + public final IllegalArgumentException resourceChangeListenerNotSupported() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), resourceChangeListenerNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String objectWasFreed$str() { + return "UT000075: Object was freed"; + } + @Override + public final IllegalStateException objectWasFreed() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), objectWasFreed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String handlerNotShutdown$str() { + return "UT000076: Handler not shutdown"; + } + @Override + public final IllegalStateException handlerNotShutdown() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), handlerNotShutdown$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String upgradeNotSupported$str() { + return "UT000077: The underlying transport does not support HTTP upgrade"; + } + @Override + public final IllegalStateException upgradeNotSupported() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), upgradeNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String renegotiationNotSupported$str() { + return "UT000078: Renegotiation not supported"; + } + @Override + public final IOException renegotiationNotSupported() { + final IOException result = new IOException(String.format(getLoggingLocale(), renegotiationNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String notAValidRegularExpressionPattern$str() { + return "UT000080: Not a valid regular expression pattern %s"; + } + @Override + public final IllegalArgumentException notAValidRegularExpressionPattern(final String pattern) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), notAValidRegularExpressionPattern$str(), pattern)); + _copyStackTraceMinusOne(result); + return result; + } + protected String badRequest$str() { + return "UT000081: Bad request"; + } + @Override + public final BadRequestException badRequest() { + final BadRequestException result = new BadRequestException(String.format(getLoggingLocale(), badRequest$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String hostAlreadyRegistered$str() { + return "UT000082: Host %s already registered"; + } + @Override + public final RuntimeException hostAlreadyRegistered(final Object host) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), hostAlreadyRegistered$str(), host)); + _copyStackTraceMinusOne(result); + return result; + } + protected String hostHasNotBeenRegistered$str() { + return "UT000083: Host %s has not been registered"; + } + @Override + public final RuntimeException hostHasNotBeenRegistered(final Object host) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), hostHasNotBeenRegistered$str(), host)); + _copyStackTraceMinusOne(result); + return result; + } + protected String extraDataWrittenAfterChunkEnd$str() { + return "UT000084: Attempted to write additional data after the last chunk"; + } + @Override + public final IOException extraDataWrittenAfterChunkEnd() { + final IOException result = new IOException(String.format(getLoggingLocale(), extraDataWrittenAfterChunkEnd$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotGenerateUniqueSessionId$str() { + return "UT000085: Could not generate unique session id"; + } + @Override + public final RuntimeException couldNotGenerateUniqueSessionId() { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), couldNotGenerateUniqueSessionId$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String controlFrameCannotHaveBodyContent$str() { + return "UT000088: SPDY control frames cannot have body content"; + } + @Override + public final IOException controlFrameCannotHaveBodyContent() { + final IOException result = new IOException(String.format(getLoggingLocale(), controlFrameCannotHaveBodyContent$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String bufferAlreadyFreed$str() { + return "UT000091: Buffer has already been freed"; + } + @Override + public final IllegalStateException bufferAlreadyFreed() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), bufferAlreadyFreed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String awaitCalledFromIoThread$str() { + return "UT000094: Blocking await method called from IO thread. Blocking IO must be dispatched to a worker thread or deadlocks will result."; + } + @Override + public final IOException awaitCalledFromIoThread() { + final IOException result = new IOException(String.format(getLoggingLocale(), awaitCalledFromIoThread$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String recursiveCallToFlushingSenders$str() { + return "UT000095: Recursive call to flushSenders()"; + } + @Override + public final RuntimeException recursiveCallToFlushingSenders() { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), recursiveCallToFlushingSenders$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String fixedLengthOverflow$str() { + return "UT000096: More data was written to the channel than specified in the content-length"; + } + @Override + public final IllegalStateException fixedLengthOverflow() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), fixedLengthOverflow$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String ajpRequestAlreadyInProgress$str() { + return "UT000097: AJP request already in progress"; + } + @Override + public final IllegalStateException ajpRequestAlreadyInProgress() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), ajpRequestAlreadyInProgress$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String httpPingDataMustBeLength8$str() { + return "UT000098: HTTP ping data must be 8 bytes in length"; + } + @Override + public final String httpPingDataMustBeLength8() { + return String.format(getLoggingLocale(), httpPingDataMustBeLength8$str()); + } + protected String invalidPingSize$str() { + return "UT000099: Received a ping of size other than 8"; + } + @Override + public final String invalidPingSize() { + return String.format(getLoggingLocale(), invalidPingSize$str()); + } + protected String streamIdMustBeZeroForFrameType$str() { + return "UT000100: stream id must be zero for frame type %s"; + } + @Override + public final String streamIdMustBeZeroForFrameType(final int frameType) { + return String.format(getLoggingLocale(), streamIdMustBeZeroForFrameType$str(), frameType); + } + protected String streamIdMustNotBeZeroForFrameType$str() { + return "UT000101: stream id must not be zero for frame type %s"; + } + @Override + public final String streamIdMustNotBeZeroForFrameType(final int frameType) { + return String.format(getLoggingLocale(), streamIdMustNotBeZeroForFrameType$str(), frameType); + } + protected String http2StreamWasReset$str() { + return "UT000103: Http2 stream was reset"; + } + @Override + public final IOException http2StreamWasReset() { + final IOException result = new IOException(String.format(getLoggingLocale(), http2StreamWasReset$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String incorrectHttp2Preface$str() { + return "UT000104: Incorrect HTTP2 preface"; + } + @Override + public final IOException incorrectHttp2Preface() { + final IOException result = new IOException(String.format(getLoggingLocale(), incorrectHttp2Preface$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String http2FrameTooLarge$str() { + return "UT000105: HTTP2 frame to large"; + } + @Override + public final IOException http2FrameTooLarge() { + final IOException result = new IOException(String.format(getLoggingLocale(), http2FrameTooLarge$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String http2ContinuationFrameNotExpected$str() { + return "UT000106: HTTP2 continuation frame received without a corresponding headers or push promise frame"; + } + @Override + public final IOException http2ContinuationFrameNotExpected() { + final IOException result = new IOException(String.format(getLoggingLocale(), http2ContinuationFrameNotExpected$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String huffmanEncodedHpackValueDidNotEndWithEOS$str() { + return "UT000107: Huffman encoded value in HPACK headers did not end with EOS padding"; + } + @Override + public final HpackException huffmanEncodedHpackValueDidNotEndWithEOS() { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String integerEncodedOverTooManyOctets$str() { + return "UT000108: HPACK variable length integer encoded over too many octects, max is %s"; + } + @Override + public final HpackException integerEncodedOverTooManyOctets(final int maxIntegerOctets) { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String zeroNotValidHeaderTableIndex$str() { + return "UT000109: Zero is not a valid header table index"; + } + @Override + public final HpackException zeroNotValidHeaderTableIndex() { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String cannotSendContinueResponse$str() { + return "UT000110: Cannot send 100-Continue, getResponseChannel() has already been called"; + } + @Override + public final IOException cannotSendContinueResponse() { + final IOException result = new IOException(String.format(getLoggingLocale(), cannotSendContinueResponse$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String parserDidNotMakeProgress$str() { + return "UT000111: Parser did not make progress"; + } + @Override + public final IOException parserDidNotMakeProgress() { + final IOException result = new IOException(String.format(getLoggingLocale(), parserDidNotMakeProgress$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String headersStreamCanOnlyBeCreatedByClient$str() { + return "UT000112: Only client side can call createStream, if you wish to send a PUSH_PROMISE frame use createPushPromiseStream instead"; + } + @Override + public final IOException headersStreamCanOnlyBeCreatedByClient() { + final IOException result = new IOException(String.format(getLoggingLocale(), headersStreamCanOnlyBeCreatedByClient$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String pushPromiseCanOnlyBeCreatedByServer$str() { + return "UT000113: Only the server side can send a push promise stream"; + } + @Override + public final IOException pushPromiseCanOnlyBeCreatedByServer() { + final IOException result = new IOException(String.format(getLoggingLocale(), pushPromiseCanOnlyBeCreatedByServer$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidAclRule$str() { + return "UT000114: Invalid IP access control rule %s. Format is: [ip-match] allow|deny"; + } + @Override + public final IllegalArgumentException invalidAclRule(final String rule) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidAclRule$str(), rule)); + _copyStackTraceMinusOne(result); + return result; + } + protected String serverReceivedPushPromise$str() { + return "UT000115: Server received PUSH_PROMISE frame from client"; + } + @Override + public final IOException serverReceivedPushPromise() { + final IOException result = new IOException(String.format(getLoggingLocale(), serverReceivedPushPromise$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String connectNotSupported$str() { + return "UT000116: CONNECT not supported by this connector"; + } + @Override + public final IllegalStateException connectNotSupported() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), connectNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String notAConnectRequest$str() { + return "UT000117: Request was not a CONNECT request"; + } + @Override + public final IllegalStateException notAConnectRequest() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), notAConnectRequest$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String cannotResetBuffer$str() { + return "UT000118: Cannot reset buffer, response has already been commited"; + } + @Override + public final IllegalStateException cannotResetBuffer() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), cannotResetBuffer$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String http2PriRequestFailed$str() { + return "UT000119: HTTP2 via prior knowledge failed"; + } + @Override + public final IOException http2PriRequestFailed() { + final IOException result = new IOException(String.format(getLoggingLocale(), http2PriRequestFailed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String outOfBandResponseNotSupported$str() { + return "UT000120: Out of band responses are not allowed for this connector"; + } + @Override + public final IllegalStateException outOfBandResponseNotSupported() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), outOfBandResponseNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String tooManySessions$str() { + return "UT000121: Session was rejected as the maximum number of sessions (%s) has been hit"; + } + @Override + public final IllegalStateException tooManySessions(final int maxSessions) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), tooManySessions$str(), maxSessions)); + _copyStackTraceMinusOne(result); + return result; + } + protected String proxyConnectionFailed$str() { + return "UT000122: CONNECT attempt failed as target proxy returned %s"; + } + @Override + public final IOException proxyConnectionFailed(final int responseCode) { + final IOException result = new IOException(String.format(getLoggingLocale(), proxyConnectionFailed$str(), responseCode)); + _copyStackTraceMinusOne(result); + return result; + } + protected String mcmpMessageRejectedDueToSuspiciousCharacters$str() { + return "UT000123: MCMP message %s rejected due to suspicious characters"; + } + @Override + public final RuntimeException mcmpMessageRejectedDueToSuspiciousCharacters(final String data) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), mcmpMessageRejectedDueToSuspiciousCharacters$str(), data)); + _copyStackTraceMinusOne(result); + return result; + } + protected String rengotiationTimedOut$str() { + return "UT000124: renegotiation timed out"; + } + @Override + public final IllegalStateException rengotiationTimedOut() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), rengotiationTimedOut$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String requestBodyAlreadyRead$str() { + return "UT000125: Request body already read"; + } + @Override + public final IllegalStateException requestBodyAlreadyRead() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), requestBodyAlreadyRead$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String blockingIoFromIOThread$str() { + return "UT000126: Attempted to do blocking IO from the IO thread. This is prohibited as it may result in deadlocks"; + } + @Override + public final IllegalStateException blockingIoFromIOThread() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), blockingIoFromIOThread$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String responseComplete$str() { + return "UT000127: Response has already been sent"; + } + @Override + public final IllegalStateException responseComplete() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), responseComplete$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String couldNotReadContentLengthData$str() { + return "UT000128: Remote peer closed connection before all data could be read"; + } + @Override + public final IOException couldNotReadContentLengthData() { + final IOException result = new IOException(String.format(getLoggingLocale(), couldNotReadContentLengthData$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToSendAfterBeingSafe$str() { + return "UT000129: Failed to send after being safe to send"; + } + @Override + public final IllegalStateException failedToSendAfterBeingSafe() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), failedToSendAfterBeingSafe$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String reasonPhraseToLargeForBuffer$str() { + return "UT000130: HTTP reason phrase was too large for the buffer. Either provide a smaller message or a bigger buffer. Phrase: %s"; + } + @Override + public final IllegalStateException reasonPhraseToLargeForBuffer(final String phrase) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), reasonPhraseToLargeForBuffer$str(), phrase)); + _copyStackTraceMinusOne(result); + return result; + } + protected String poolIsClosed$str() { + return "UT000131: Buffer pool is closed"; + } + @Override + public final IllegalStateException poolIsClosed() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), poolIsClosed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String hpackFailed$str() { + return "UT000132: HPACK decode failed"; + } + @Override + public final HpackException hpackFailed() { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String notAnUpgradeRequest$str() { + return "UT000133: Request did not contain an Upgrade header, upgrade is not permitted"; + } + @Override + public final IllegalStateException notAnUpgradeRequest() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), notAnUpgradeRequest$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String authenticationPropertyNotSet$str() { + return "UT000134: Authentication mechanism %s requires property %s to be set"; + } + @Override + public final IllegalStateException authenticationPropertyNotSet(final String name, final String header) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), authenticationPropertyNotSet$str(), name, header)); + _copyStackTraceMinusOne(result); + return result; + } + protected String rengotiationFailed$str() { + return "UT000135: renegotiation failed"; + } + @Override + public final IllegalStateException rengotiationFailed() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), rengotiationFailed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String userAgentCharsetMustHaveEvenNumberOfItems$str() { + return "UT000136: User agent charset string must have an even number of items, in the form pattern,charset,pattern,charset,... Instead got: %s"; + } + @Override + public final IllegalArgumentException userAgentCharsetMustHaveEvenNumberOfItems(final String supplied) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), userAgentCharsetMustHaveEvenNumberOfItems$str(), supplied)); + _copyStackTraceMinusOne(result); + return result; + } + protected String datasourceNotFound$str() { + return "UT000137: Could not find the datasource called %s"; + } + @Override + public final IllegalArgumentException datasourceNotFound(final String ds) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), datasourceNotFound$str(), ds)); + _copyStackTraceMinusOne(result); + return result; + } + protected String serverNotStarted$str() { + return "UT000138: Server not started"; + } + @Override + public final IllegalStateException serverNotStarted() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), serverNotStarted$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String exchangeAlreadyComplete$str() { + return "UT000139: Exchange already complete"; + } + @Override + public final IllegalStateException exchangeAlreadyComplete() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), exchangeAlreadyComplete$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String notHandshakeRecord$str() { + return "UT000140: Initial SSL/TLS data is not a handshake record"; + } + @Override + public final SSLHandshakeException notHandshakeRecord() { + final SSLHandshakeException result = new SSLHandshakeException(String.format(getLoggingLocale(), notHandshakeRecord$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidHandshakeRecord$str() { + return "UT000141: Initial SSL/TLS handshake record is invalid"; + } + @Override + public final SSLHandshakeException invalidHandshakeRecord() { + final SSLHandshakeException result = new SSLHandshakeException(String.format(getLoggingLocale(), invalidHandshakeRecord$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String multiRecordSSLHandshake$str() { + return "UT000142: Initial SSL/TLS handshake spans multiple records"; + } + @Override + public final SSLHandshakeException multiRecordSSLHandshake() { + final SSLHandshakeException result = new SSLHandshakeException(String.format(getLoggingLocale(), multiRecordSSLHandshake$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String expectedClientHello$str() { + return "UT000143: Expected \"client hello\" record"; + } + @Override + public final SSLHandshakeException expectedClientHello() { + final SSLHandshakeException result = new SSLHandshakeException(String.format(getLoggingLocale(), expectedClientHello$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String expectedServerHello$str() { + return "UT000144: Expected server hello"; + } + @Override + public final SSLHandshakeException expectedServerHello() { + final SSLHandshakeException result = new SSLHandshakeException(String.format(getLoggingLocale(), expectedServerHello$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String tooManyRedirects$str() { + return "UT000145: Too many redirects"; + } + @Override + public final IOException tooManyRedirects(final IOException exception) { + final IOException result = new IOException(String.format(getLoggingLocale(), tooManyRedirects$str()), exception); + _copyStackTraceMinusOne(result); + return result; + } + protected String resumedAndDispatched$str() { + return "UT000146: HttpServerExchange cannot have both async IO resumed and dispatch() called in the same cycle"; + } + @Override + public final IllegalStateException resumedAndDispatched() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), resumedAndDispatched$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String noHostInHttp11Request$str() { + return "UT000147: No host header in a HTTP/1.1 request"; + } + @Override + public final IOException noHostInHttp11Request() { + final IOException result = new IOException(String.format(getLoggingLocale(), noHostInHttp11Request$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidHpackEncoding$str() { + return "UT000148: Invalid HPack encoding. First byte: %s"; + } + @Override + public final HpackException invalidHpackEncoding(final byte b) { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String newlineNotSupportedInHttpString$str() { + return "UT000149: HttpString is not allowed to contain newlines. value: %s"; + } + @Override + public final IllegalArgumentException newlineNotSupportedInHttpString(final String value) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), newlineNotSupportedInHttpString$str(), value)); + _copyStackTraceMinusOne(result); + return result; + } + protected String pseudoHeaderInWrongOrder$str() { + return "UT000150: Pseudo header %s received after receiving normal headers. Pseudo headers must be the first headers in a HTTP/2 header block."; + } + @Override + public final String pseudoHeaderInWrongOrder(final HttpString header) { + return String.format(getLoggingLocale(), pseudoHeaderInWrongOrder$str(), header); + } + protected String expectedContinuationFrame$str() { + return "UT000151: Expected to receive a continuation frame"; + } + @Override + public final String expectedContinuationFrame() { + return String.format(getLoggingLocale(), expectedContinuationFrame$str()); + } + protected String incorrectFrameSize$str() { + return "UT000152: Incorrect frame size"; + } + @Override + public final String incorrectFrameSize() { + return String.format(getLoggingLocale(), incorrectFrameSize$str()); + } + protected String streamNotRegistered$str() { + return "UT000153: Stream id not registered"; + } + @Override + public final IllegalStateException streamNotRegistered() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), streamNotRegistered$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String sendChallengeReturnedNull$str() { + return "UT000154: Mechanism %s returned a null result from sendChallenge()"; + } + @Override + public final NullPointerException sendChallengeReturnedNull(final AuthenticationMechanism mechanism) { + final NullPointerException result = new NullPointerException(String.format(getLoggingLocale(), sendChallengeReturnedNull$str(), mechanism)); + _copyStackTraceMinusOne(result); + return result; + } + protected String bodyIsSetAndNotReadyForFlush$str() { + return "UT000155: Framed channel body was set when it was not ready for flush"; + } + @Override + public final IllegalStateException bodyIsSetAndNotReadyForFlush() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), bodyIsSetAndNotReadyForFlush$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidGzipHeader$str() { + return "UT000156: Invalid GZIP header"; + } + @Override + public final IOException invalidGzipHeader() { + final IOException result = new IOException(String.format(getLoggingLocale(), invalidGzipHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidGZIPFooter$str() { + return "UT000157: Invalid GZIP footer"; + } + @Override + public final IOException invalidGZIPFooter() { + final IOException result = new IOException(String.format(getLoggingLocale(), invalidGZIPFooter$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String responseTooLargeToBuffer$str() { + return "UT000158: Response of length %s is too large to buffer"; + } + @Override + public final IllegalStateException responseTooLargeToBuffer(final Long length) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), responseTooLargeToBuffer$str(), length)); + _copyStackTraceMinusOne(result); + return result; + } + protected String headerBlockTooLarge$str() { + return "UT000161: HTTP/2 header block is too large"; + } + @Override + public final String headerBlockTooLarge() { + return String.format(getLoggingLocale(), headerBlockTooLarge$str()); + } + protected String invalidSameSiteMode$str() { + return "UT000162: An invalid SameSite attribute [%s] is specified. It must be one of %s"; + } + @Override + public final IllegalArgumentException invalidSameSiteMode(final String mode, final String validAttributes) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidSameSiteMode$str(), mode, validAttributes)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidToken$str() { + return "UT000163: Invalid token %s"; + } + @Override + public final IllegalArgumentException invalidToken(final byte c) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidToken$str(), c)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidHeaders$str() { + return "UT000164: Request contained invalid headers"; + } + @Override + public final IllegalArgumentException invalidHeaders() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidHeaders$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidCharacterInRequestTarget$str() { + return "UT000165: Invalid character %s in request-target"; + } + @Override + public final String invalidCharacterInRequestTarget(final char next) { + return String.format(getLoggingLocale(), invalidCharacterInRequestTarget$str(), next); + } + protected String objectIsClosed$str() { + return "UT000166: Pooled object is closed"; + } + @Override + public final IllegalStateException objectIsClosed() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), objectIsClosed$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String moreThanOneHostHeader$str() { + return "UT000167: More than one host header in request"; + } + @Override + public final IOException moreThanOneHostHeader() { + final IOException result = new IOException(String.format(getLoggingLocale(), moreThanOneHostHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidCookieValue$str() { + return "UT000168: An invalid character [ASCII code: %s] was present in the cookie value"; + } + @Override + public final IllegalArgumentException invalidCookieValue(final String value) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidCookieValue$str(), value)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidCookieDomain$str() { + return "UT000169: An invalid domain [%s] was specified for this cookie"; + } + @Override + public final IllegalArgumentException invalidCookieDomain(final String value) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidCookieDomain$str(), value)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidCookiePath$str() { + return "UT000170: An invalid path [%s] was specified for this cookie"; + } + @Override + public final IllegalArgumentException invalidCookiePath(final String value) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidCookiePath$str(), value)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidControlCharacter$str() { + return "UT000173: An invalid control character [%s] was present in the cookie value or attribute"; + } + @Override + public final IllegalArgumentException invalidControlCharacter(final String value) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidControlCharacter$str(), value)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidEscapeCharacter$str() { + return "UT000174: An invalid escape character in cookie value"; + } + @Override + public final IllegalArgumentException invalidEscapeCharacter() { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidEscapeCharacter$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidHpackIndex$str() { + return "UT000175: Invalid Hpack index %s"; + } + @Override + public final HpackException invalidHpackIndex(final int index) { + final HpackException result = new HpackException(); + _copyStackTraceMinusOne(result); + return result; + } + protected String bufferPoolTooSmall$str() { + return "UT000178: Buffer pool is too small, min size is %s"; + } + @Override + public final IllegalArgumentException bufferPoolTooSmall(final int minSize) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), bufferPoolTooSmall$str(), minSize)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidProxyHeader$str() { + return "UT000179: Invalid PROXY protocol header"; + } + @Override + public final IOException invalidProxyHeader() { + final IOException result = new IOException(String.format(getLoggingLocale(), invalidProxyHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String headerSizeToLarge$str() { + return "UT000180: PROXY protocol header exceeded max size of 107 bytes"; + } + @Override + public final IOException headerSizeToLarge() { + final IOException result = new IOException(String.format(getLoggingLocale(), headerSizeToLarge$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String http2TrailerToLargeForSingleBuffer$str() { + return "UT000181: HTTP/2 trailers too large for single buffer"; + } + @Override + public final RuntimeException http2TrailerToLargeForSingleBuffer() { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), http2TrailerToLargeForSingleBuffer$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String pingNotSupported$str() { + return "UT000182: Ping not supported"; + } + @Override + public final IOException pingNotSupported() { + final IOException result = new IOException(String.format(getLoggingLocale(), pingNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String pingTimeout$str() { + return "UT000183: Ping timed out"; + } + @Override + public final IOException pingTimeout() { + final IOException result = new IOException(String.format(getLoggingLocale(), pingTimeout$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String streamLimitExceeded$str() { + return "UT000184: Stream limit exceeded"; + } + @Override + public final IOException streamLimitExceeded() { + final IOException result = new IOException(String.format(getLoggingLocale(), streamLimitExceeded$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidIpAddress$str() { + return "UT000185: Invalid IP address %s"; + } + @Override + public final IllegalArgumentException invalidIpAddress(final String addressString) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidIpAddress$str(), addressString)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidTlsExt$str() { + return "UT000186: Invalid TLS extension"; + } + @Override + public final SSLException invalidTlsExt() { + final SSLException result = new SSLException(String.format(getLoggingLocale(), invalidTlsExt$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String notEnoughData$str() { + return "UT000187: Not enough data"; + } + @Override + public final SSLException notEnoughData() { + final SSLException result = new SSLException(String.format(getLoggingLocale(), notEnoughData$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String emptyHostNameSni$str() { + return "UT000188: Empty host name in SNI extension"; + } + @Override + public final SSLException emptyHostNameSni() { + final SSLException result = new SSLException(String.format(getLoggingLocale(), emptyHostNameSni$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String duplicatedSniServerName$str() { + return "UT000189: Duplicated host name of type %s"; + } + @Override + public final SSLException duplicatedSniServerName(final int type) { + final SSLException result = new SSLException(String.format(getLoggingLocale(), duplicatedSniServerName$str(), type)); + _copyStackTraceMinusOne(result); + return result; + } + protected String noContextForSslConnection$str() { + return "UT000190: No context for SSL connection"; + } + @Override + public final SSLException noContextForSslConnection() { + final SSLException result = new SSLException(String.format(getLoggingLocale(), noContextForSslConnection$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String defaultContextCannotBeNull$str() { + return "UT000191: Default context cannot be null"; + } + @Override + public final IllegalStateException defaultContextCannotBeNull() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), defaultContextCannotBeNull$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String formValueIsInMemoryFile$str() { + return "UT000192: Form value is a in-memory file, use getFileItem() instead"; + } + @Override + public final IllegalStateException formValueIsInMemoryFile() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), formValueIsInMemoryFile$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToDecodeParameterValue$str() { + return "UT000193: Character decoding failed. Parameter [%s] with value [%s] has been ignored. Note: further occurrences of Parameter errors will be logged at DEBUG level."; + } + @Override + public final String failedToDecodeParameterValue(final String parameter, final String value, final Exception e) { + return String.format(getLoggingLocale(), failedToDecodeParameterValue$str(), parameter, value); + } + protected String failedToDecodeParameterName$str() { + return "UT000194: Character decoding failed. Parameter with name [%s] has been ignored. Note: further occurrences of Parameter errors will be logged at DEBUG level."; + } + @Override + public final String failedToDecodeParameterName(final String parameter, final Exception e) { + return String.format(getLoggingLocale(), failedToDecodeParameterName$str(), parameter); + } + protected String chunkSizeTooLarge$str() { + return "UT000195: Chunk size too large"; + } + @Override + public final IOException chunkSizeTooLarge() { + final IOException result = new IOException(String.format(getLoggingLocale(), chunkSizeTooLarge$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String sessionWithIdAlreadyExists$str() { + return "UT000196: Session with id %s already exists"; + } + @Override + public final IllegalStateException sessionWithIdAlreadyExists(final String sessionID) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), sessionWithIdAlreadyExists$str(), sessionID)); + _copyStackTraceMinusOne(result); + return result; + } + protected String blockingReadTimedOut$str() { + return "UT000197: Blocking read timed out after %s nanoseconds."; + } + @Override + public final ReadTimeoutException blockingReadTimedOut(final long timeoutNanoseconds) { + final ReadTimeoutException result = new ReadTimeoutException(String.format(getLoggingLocale(), blockingReadTimedOut$str(), timeoutNanoseconds)); + _copyStackTraceMinusOne(result); + return result; + } + protected String blockingWriteTimedOut$str() { + return "UT000198: Blocking write timed out after %s nanoseconds."; + } + @Override + public final WriteTimeoutException blockingWriteTimedOut(final long timeoutNanoseconds) { + final WriteTimeoutException result = new WriteTimeoutException(String.format(getLoggingLocale(), blockingWriteTimedOut$str(), timeoutNanoseconds)); + _copyStackTraceMinusOne(result); + return result; + } + protected String readTimedOut$str() { + return "UT000199: Read timed out after %s milliseconds."; + } + @Override + public final ReadTimeoutException readTimedOut(final long timeoutMilliseconds) { + final ReadTimeoutException result = new ReadTimeoutException(String.format(getLoggingLocale(), readTimedOut$str(), timeoutMilliseconds)); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToReplaceHashOutputStream$str() { + return "UT000200: Failed to replace hash output stream "; + } + @Override + public final SSLException failedToReplaceHashOutputStream(final Exception e) { + final SSLException result = new SSLException(String.format(getLoggingLocale(), failedToReplaceHashOutputStream$str()), e); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToReplaceHashOutputStreamOnWrite$str() { + return "UT000201: Failed to replace hash output stream "; + } + @Override + public final RuntimeException failedToReplaceHashOutputStreamOnWrite(final Exception e) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), failedToReplaceHashOutputStreamOnWrite$str()), e); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToInitializePathManager$str() { + return "UT000202: Failed to initialize path manager for '%s' path."; + } + @Override + public final RuntimeException failedToInitializePathManager(final String path, final IOException ioe) { + final RuntimeException result = new RuntimeException(String.format(getLoggingLocale(), failedToInitializePathManager$str(), path), ioe); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidACLAddress$str() { + return "UT000203: Invalid ACL entry"; + } + @Override + public final IllegalArgumentException invalidACLAddress(final Exception e) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidACLAddress$str()), e); + _copyStackTraceMinusOne(result); + return result; + } + protected String pathNotADirectory$str() { + return "UT000205: Path is not a directory '%s'"; + } + @Override + public final IOException pathNotADirectory(final Path path) { + final IOException result = new IOException(String.format(getLoggingLocale(), pathNotADirectory$str(), path)); + _copyStackTraceMinusOne(result); + return result; + } + protected String pathElementIsRegularFile$str() { + return "UT000206: Path '%s' is not a directory"; + } + @Override + public final IOException pathElementIsRegularFile(final Path path) { + final IOException result = new IOException(String.format(getLoggingLocale(), pathElementIsRegularFile$str(), path)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidSniHostname$str() { + return "UT000207: Invalid SNI hostname '%s'"; + } + @Override + public final IllegalArgumentException invalidSniHostname(final String hostNameValue, final Throwable t) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidSniHostname$str(), hostNameValue), t); + _copyStackTraceMinusOne(result); + return result; + } + protected String failedToAllocateResource$str() { + return "UT000208: Failed to allocate resource"; + } + @Override + public final IOException failedToAllocateResource() { + final IOException result = new IOException(String.format(getLoggingLocale(), failedToAllocateResource$str())); + _copyStackTraceMinusOne(result); + return result; + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/UndertowOptions.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/Version.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/AuthenticationTypeExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/BytesSentAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/CompositeExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ConstantExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/CookieAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/DateTimeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ExchangeAttributeBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ExchangeAttributeParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ExchangeAttributeWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ExchangeAttributes.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/HostAndPortAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/IdentUsernameAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/LocalIPAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/LocalPortAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/LocalServerNameAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/NullAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/PathParameterAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/PredicateContextAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/QueryParameterAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/QueryStringAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/QuotingExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ReadOnlyAttributeException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RelativePathAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RemoteHostAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RemoteIPAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/attribute/RemoteObfuscatedIPAttribute.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/attribute/RemoteObfuscatedIPAttribute.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/attribute/RemoteObfuscatedIPAttribute.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,88 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2019 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.attribute; + +import io.undertow.server.HttpServerExchange; +import io.undertow.util.NetworkUtils; + +import java.net.InetAddress; +import java.net.InetSocketAddress; + +/** + * The remote IP address + * + * @author Stuart Douglas + */ +public class RemoteObfuscatedIPAttribute implements ExchangeAttribute { + + public static final String REMOTE_OBFUSCATED_IP_SHORT = "%o"; + public static final String REMOTE_OBFUSCATED_IP = "%{REMOTE_OBFUSCATED_IP}"; + + public static final ExchangeAttribute INSTANCE = new RemoteObfuscatedIPAttribute(); + + private RemoteObfuscatedIPAttribute() { + + } + + @Override + public String readAttribute(final HttpServerExchange exchange) { + final InetSocketAddress sourceAddress = exchange.getSourceAddress(); + InetAddress address = sourceAddress.getAddress(); + if (address == null) { + //this can happen when we have an unresolved X-forwarded-for address + //in this case we just return the IP of the balancer + address = ((InetSocketAddress) exchange.getConnection().getPeerAddress()).getAddress(); + } + if(address == null) { + return null; + } + return NetworkUtils.toObfuscatedString(address); + } + + @Override + public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { + throw new ReadOnlyAttributeException("Remote Obfuscated IP", newValue); + } + + @Override + public String toString() { + return REMOTE_OBFUSCATED_IP; + } + + public static final class Builder implements ExchangeAttributeBuilder { + + @Override + public String name() { + return "Remote Obfuscated IP"; + } + + @Override + public ExchangeAttribute build(final String token) { + if (token.equals(REMOTE_OBFUSCATED_IP) || token.equals(REMOTE_OBFUSCATED_IP_SHORT)) { + return RemoteObfuscatedIPAttribute.INSTANCE; + } + return null; + } + + @Override + public int priority() { + return 0; + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RemoteUserAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/attribute/RequestCookieAttribute.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/attribute/RequestCookieAttribute.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/attribute/RequestCookieAttribute.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,80 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.attribute; + +import io.undertow.server.HttpServerExchange; +import io.undertow.server.handlers.Cookie; +import io.undertow.server.handlers.CookieImpl; + +/** + * A request cookie + * @author Richard Opalka + */ +public class RequestCookieAttribute implements ExchangeAttribute { + + private static final String TOKEN_PREFIX = "%{req-cookie,"; + + private final String cookieName; + + public RequestCookieAttribute(final String cookieName) { + this.cookieName = cookieName; + } + + @Override + public String readAttribute(final HttpServerExchange exchange) { + for (Cookie cookie : exchange.requestCookies()) { + if (cookieName.equals(cookie.getName())) { + return cookie.getValue(); + } + } + return null; + } + + @Override + public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { + exchange.setRequestCookie(new CookieImpl(cookieName, newValue)); + } + + @Override + public String toString() { + return TOKEN_PREFIX + cookieName + "}"; + } + + public static final class Builder implements ExchangeAttributeBuilder { + + @Override + public String name() { + return "Request cookie"; + } + + @Override + public ExchangeAttribute build(final String token) { + if (token.startsWith(TOKEN_PREFIX) && token.endsWith("}")) { + final String cookieName = token.substring(TOKEN_PREFIX.length(), token.length() - 1); + return new RequestCookieAttribute(cookieName); + } + return null; + } + + @Override + public int priority() { + return 0; + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestHeaderAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestLineAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestMethodAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestPathAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestProtocolAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestSchemeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/RequestURLAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ResolvedPathAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ResponseCodeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/attribute/ResponseCookieAttribute.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/attribute/ResponseCookieAttribute.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/attribute/ResponseCookieAttribute.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,80 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.attribute; + +import io.undertow.server.HttpServerExchange; +import io.undertow.server.handlers.Cookie; +import io.undertow.server.handlers.CookieImpl; + +/** + * A response cookie + * @author Richard Opalka + */ +public class ResponseCookieAttribute implements ExchangeAttribute { + + private static final String TOKEN_PREFIX = "%{resp-cookie,"; + + private final String cookieName; + + public ResponseCookieAttribute(final String cookieName) { + this.cookieName = cookieName; + } + + @Override + public String readAttribute(final HttpServerExchange exchange) { + for (Cookie cookie : exchange.responseCookies()) { + if (cookieName.equals(cookie.getName())) { + return cookie.getValue(); + } + } + return null; + } + + @Override + public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { + exchange.setResponseCookie(new CookieImpl(cookieName, newValue)); + } + + @Override + public String toString() { + return TOKEN_PREFIX + cookieName + "}"; + } + + public static final class Builder implements ExchangeAttributeBuilder { + + @Override + public String name() { + return "Response cookie"; + } + + @Override + public ExchangeAttribute build(final String token) { + if (token.startsWith(TOKEN_PREFIX) && token.endsWith("}")) { + final String cookieName = token.substring(TOKEN_PREFIX.length(), token.length() - 1); + return new ResponseCookieAttribute(cookieName); + } + return null; + } + + @Override + public int priority() { + return 0; + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ResponseHeaderAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ResponseReasonPhraseAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ResponseTimeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/SecureExchangeAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/SslCipherAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/SslClientCertAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/SslSessionIdAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/StoredResponse.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/SubstituteEmptyWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/ThreadNameAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/attribute/TransportProtocolAttribute.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/channels/DetachableStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/channels/DetachableStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ALPNClientSelector.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientRequest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientResponse.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ClientStatistics.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ContinueNotification.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ProxiedRequestAttachments.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/PushCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/UndertowClient.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/UndertowClientMessages.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/client/UndertowClientMessages_$bundle.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/client/UndertowClientMessages_$bundle.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/client/UndertowClientMessages_$bundle.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,137 @@ +package io.undertow.client; + +import java.util.Locale; +import java.lang.IllegalStateException; +import java.io.Serializable; +import javax.annotation.processing.Generated; +import java.lang.String; +import java.io.IOException; +import java.util.Arrays; +import java.net.URI; +import java.lang.IllegalArgumentException; +import io.undertow.util.HttpString; + +/** + * Warning this class consists of generated code. + */ +@Generated(value = "org.jboss.logging.processor.generator.model.MessageBundleImplementor", date = "2024-02-21T04:11:51-0300") +public class UndertowClientMessages_$bundle implements UndertowClientMessages, Serializable { + private static final long serialVersionUID = 1L; + protected UndertowClientMessages_$bundle() {} + public static final UndertowClientMessages_$bundle INSTANCE = new UndertowClientMessages_$bundle(); + protected Object readResolve() { + return INSTANCE; + } + private static final Locale LOCALE = Locale.ROOT; + protected Locale getLoggingLocale() { + return LOCALE; + } + protected String connectionClosed$str() { + return "UT001000: Connection closed"; + } + @Override + public final String connectionClosed() { + return String.format(getLoggingLocale(), connectionClosed$str()); + } + protected String requestAlreadyWritten$str() { + return "UT001001: Request already written"; + } + @Override + public final IllegalStateException requestAlreadyWritten() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), requestAlreadyWritten$str())); + _copyStackTraceMinusOne(result); + return result; + } + private static void _copyStackTraceMinusOne(final Throwable e) { + final StackTraceElement[] st = e.getStackTrace(); + e.setStackTrace(Arrays.copyOfRange(st, 1, st.length)); + } + protected String failedToUpgradeChannel$str() { + return "UT001020: Failed to upgrade channel due to response %s (%s)"; + } + @Override + public final String failedToUpgradeChannel(final int responseCode, final String reason) { + return String.format(getLoggingLocale(), failedToUpgradeChannel$str(), responseCode, reason); + } + protected String illegalContentLength$str() { + return "UT001030: invalid content length %d"; + } + @Override + public final IllegalArgumentException illegalContentLength(final long length) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), illegalContentLength$str(), length)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unknownScheme$str() { + return "UT001031: Unknown scheme in URI %s"; + } + @Override + public final IllegalArgumentException unknownScheme(final URI uri) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), unknownScheme$str(), uri)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unknownTransferEncoding$str() { + return "UT001032: Unknown transfer encoding %s"; + } + @Override + public final IOException unknownTransferEncoding(final String transferEncodingString) { + final IOException result = new IOException(String.format(getLoggingLocale(), unknownTransferEncoding$str(), transferEncodingString)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidConnectionState$str() { + return "UT001033: Invalid connection state"; + } + @Override + public final IOException invalidConnectionState() { + final IOException result = new IOException(String.format(getLoggingLocale(), invalidConnectionState$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String unknownAjpMessageType$str() { + return "UT001034: Unknown AJP packet type %s"; + } + @Override + public final IOException unknownAjpMessageType(final byte packetType) { + final IOException result = new IOException(String.format(getLoggingLocale(), unknownAjpMessageType$str(), packetType)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unknownMethod$str() { + return "UT001035: Unknown method type for AJP request %s"; + } + @Override + public final IOException unknownMethod(final HttpString method) { + final IOException result = new IOException(String.format(getLoggingLocale(), unknownMethod$str(), method)); + _copyStackTraceMinusOne(result); + return result; + } + protected String dataStillRemainingInChunk$str() { + return "UT001036: Data still remaining in chunk %s"; + } + @Override + public final IOException dataStillRemainingInChunk(final long remaining) { + final IOException result = new IOException(String.format(getLoggingLocale(), dataStillRemainingInChunk$str(), remaining)); + _copyStackTraceMinusOne(result); + return result; + } + protected String wrongMagicNumber$str() { + return "UT001037: Wrong magic number, expected %s, actual %s"; + } + @Override + public final IOException wrongMagicNumber(final String expected, final String actual) { + final IOException result = new IOException(String.format(getLoggingLocale(), wrongMagicNumber$str(), expected, actual)); + _copyStackTraceMinusOne(result); + return result; + } + protected String receivedInvalidChunk$str() { + return "UT001038: Received invalid AJP chunk %s with response already complete"; + } + @Override + public final IOException receivedInvalidChunk(final byte prefix) { + final IOException result = new IOException(String.format(getLoggingLocale(), receivedInvalidChunk$str(), prefix)); + _copyStackTraceMinusOne(result); + return result; + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ajp/AjpClientConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ajp/AjpClientExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/ajp/AjpClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/ClientFixedLengthStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpClientConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpClientExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpRequestConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpResponseBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/HttpResponseParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http/ResponseParseState.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http2/Http2ClearClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http2/Http2ClientConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http2/Http2ClientExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http2/Http2ClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/client/http2/Http2PriorKnowledgeClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/AbstractFixedLengthStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/AbstractFramedStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/BrokenStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ByteActivityCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/BytesReceivedStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/BytesSentStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ChunkReader.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ChunkedStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ChunkedStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ConduitListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/DebuggingStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/DebuggingStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/DeflatingStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/EmptyStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/FinishableStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/FinishableStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/FixedLengthStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/GzipStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/GzipStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/HeadStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/IdleTimeoutConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/InflatingStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/PreChunkedStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/RangeStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/RateLimitingStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ReadDataStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/ReadTimeoutStreamSourceConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/StoredResponseStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/conduits/WriteTimeoutStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/connector/ByteBufferPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/connector/PooledByteBuffer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/AsyncReceiverImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/AsyncSenderImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/BlockingReceiverImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/BlockingSenderImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/BufferWritableOutputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/DefaultIoCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/IoCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/Receiver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/Sender.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/UndertowInputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/io/UndertowOutputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/AndPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/AuthenticationRequiredPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/ContainsPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/EqualsPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/ExistsPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/FalsePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/IdempotentPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/MaxContentSizePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/MethodPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/MinContentSizePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/NotPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/OrPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PathMatchPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PathPrefixPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PathSuffixPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PathTemplatePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/Predicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PredicateBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PredicateParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/Predicates.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/PredicatesHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/RegularExpressionPredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/predicate/RequestLargerThanPredicate.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/predicate/RequestLargerThanPredicate.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/predicate/RequestLargerThanPredicate.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,83 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.predicate; + +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +import io.undertow.server.HttpServerExchange; +import io.undertow.util.Headers; + +/** + * Predicate that returns true if the Content-Size of a request is larger than a + * given size. + * + * @author Brad Wood + */ +public class RequestLargerThanPredicate implements Predicate { + + private final long size; + + RequestLargerThanPredicate(final long size) { + this.size = size; + } + + @Override + public boolean resolve(final HttpServerExchange exchange) { + final String length = exchange.getResponseHeaders().getFirst(Headers.CONTENT_LENGTH); + if (length == null) { + return false; + } + return Long.parseLong(length) > size; + } + + public String toString() { + return "request-larger-than( '" + size + "' )"; + } + + public static class Builder implements PredicateBuilder { + + @Override + public String name() { + return "request-larger-than"; + } + + @Override + public Map> parameters() { + return Collections.>singletonMap("size", Long.class); + } + + @Override + public Set requiredParameters() { + return Collections.singleton("size"); + } + + @Override + public String defaultParameter() { + return "size"; + } + + @Override + public Predicate build(final Map config) { + Long size = (Long) config.get("size"); + return new RequestLargerThanPredicate(size); + } + } +} Index: 3rdParty_sources/undertow/io/undertow/predicate/RequestSmallerThanPredicate.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/predicate/RequestSmallerThanPredicate.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/predicate/RequestSmallerThanPredicate.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,83 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.predicate; + +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +import io.undertow.server.HttpServerExchange; +import io.undertow.util.Headers; + +/** + * Predicate that returns true if the Content-Size of a request is smaller than a + * given size. + * + * @author Brad Wood + */ +public class RequestSmallerThanPredicate implements Predicate { + + private final long size; + + RequestSmallerThanPredicate(final long size) { + this.size = size; + } + + @Override + public boolean resolve(final HttpServerExchange exchange) { + final String length = exchange.getResponseHeaders().getFirst(Headers.CONTENT_LENGTH); + if (length == null) { + return false; + } + return Long.parseLong(length) < size; + } + + public String toString() { + return "request-smaller-than( '" + size + "' )"; + } + + public static class Builder implements PredicateBuilder { + + @Override + public String name() { + return "request-smaller-than"; + } + + @Override + public Map> parameters() { + return Collections.>singletonMap("size", Long.class); + } + + @Override + public Set requiredParameters() { + return Collections.singleton("size"); + } + + @Override + public String defaultParameter() { + return "size"; + } + + @Override + public Predicate build(final Map config) { + Long size = (Long) config.get("size"); + return new RequestSmallerThanPredicate(size); + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/SecurePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/predicate/TruePredicate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AbstractAjpClientStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AbstractAjpClientStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpClientCPingStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpClientChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpClientFramePriority.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpConstants.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpResponseParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ajp/AjpUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/alpn/ALPNEngineManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/alpn/ALPNManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/alpn/ALPNProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/alpn/DefaultAlpnEngineManager.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/protocols/alpn/ModularJdkAlpnProvider.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/protocols/alpn/ModularJdkAlpnProvider.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/protocols/alpn/ModularJdkAlpnProvider.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,61 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.protocols.alpn; + +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLParameters; + +/** + * Open listener adaptor for ALPN connections that use the Modular JDK API + *

+ * Not a proper open listener as such, but more a mechanism for selecting between them + * + * @author Stuart Douglas + */ +public class ModularJdkAlpnProvider implements ALPNProvider { + + @Override + public boolean isEnabled(final SSLEngine sslEngine) { + return true; + } + + @Override + public SSLEngine setProtocols(final SSLEngine engine, final String[] protocols) { + SSLParameters sslParameters = engine.getSSLParameters(); + sslParameters.setApplicationProtocols(protocols); + engine.setSSLParameters(sslParameters); + return engine; + } + + @Override + public String getSelectedProtocol(final SSLEngine engine) { + return engine.getApplicationProtocol(); + } + + @Override + public int getPriority() { + return 200; + } + + @Override + public String toString() { + return "ModularJdkAlpnProvider"; + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/alpn/OpenSSLAlpnProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/AbstractHttp2StreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/AbstractHttp2StreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/ConnectionErrorException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/HPackHuffman.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Hpack.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/HpackDecoder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/HpackEncoder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/HpackException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2Channel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2DataFrameParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2DataStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2DiscardParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2FrameHeaderParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2FramePriority.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2GoAwayParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2GoAwayStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2GoAwayStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2HeaderBlockParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2HeadersParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2HeadersStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2NoDataStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PingParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PingStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PingStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PrefaceStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PriorityParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PriorityTree.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2ProtocolUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PushBackParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PushPromiseParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PushPromiseStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2PushPromiseStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2RstStreamParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2RstStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2RstStreamStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2Setting.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2SettingsParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2SettingsStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2SettingsStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2Stream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2StreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2StreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2WindowUpdateParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/Http2WindowUpdateStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/http2/StreamErrorException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/MechanismDatabase.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNIAlpnEngineManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNIContextMatcher.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNISSLContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNISSLContextSpi.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNISSLEngine.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SNISSLExplorer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/SslConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/UndertowAcceptingSslChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/UndertowSslConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/protocols/ssl/UndertowXnioSsl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/AuthenticatedSessionManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/AuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/AuthenticationMechanismContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/AuthenticationMechanismFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/AuthenticationMode.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/GSSAPIServerSubjectFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/NonceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/NotificationReceiver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/SecurityContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/SecurityContextFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/SecurityNotification.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/api/SessionNonceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/AbstractConfidentialityHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/AbstractSecurityContextAssociationHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/AuthenticationCallHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/AuthenticationConstraintHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/AuthenticationMechanismsHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/CachedAuthenticatedSessionHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/NotificationReceiverHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/SecurityActions.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/SecurityInitialHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/handlers/SinglePortConfidentialityHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/Account.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/Credential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/DigestAlgorithm.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/DigestCredential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/ExternalCredential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/GSSContextCredential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/IdentityManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/PasswordCredential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/idm/X509CertificateCredential.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/AbstractSecurityContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/AuthenticationInfoToken.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/BasicAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/CachedAuthenticatedSessionMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/ClientCertAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/DigestAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/DigestAuthorizationToken.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/DigestQop.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/DigestWWWAuthenticateToken.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/ExternalAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/FormAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/GSSAPIAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/GenericHeaderAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/InMemorySingleSignOnManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SecurityActions.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SecurityContextFactoryImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SecurityContextImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SimpleNonceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SingleSignOn.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SingleSignOnAuthenticationMechanism.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/security/impl/SingleSignOnManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/AbstractServerConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/AggregateConnectorStatistics.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/BasicSSLSessionInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/BlockingHttpExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ConduitWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ConnectionSSLSessionInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ConnectorStatistics.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ConnectorStatisticsImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/Connectors.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/DefaultByteBufferPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/DefaultResponseListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/DelegateOpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/DelegatingIterable.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/DelegatingIterable.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/DelegatingIterable.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,42 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server; + +import java.util.Iterator; + +/** + * @author Richard Opalka + */ +final class DelegatingIterable implements Iterable { + + private final Iterable delegate; + + DelegatingIterable(final Iterable delegate) { + this.delegate = delegate; + } + + Iterable getDelegate() { + return delegate; + } + + @Override + public Iterator iterator() { + return new ReadOnlyIterator(delegate.iterator()); + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/DirectByteBufferDeallocator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ExchangeCompletionListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/HandlerWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/HttpHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/HttpServerExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/HttpUpgradeListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/JvmRouteHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ListenerRegistry.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/MapDelegatingToSet.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/MapDelegatingToSet.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/MapDelegatingToSet.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,253 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2014 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server; + +import static java.util.Collections.emptySet; +import static java.util.Collections.unmodifiableCollection; +import static java.util.Collections.unmodifiableSet; + +import io.undertow.server.handlers.Cookie; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Function; + +/** + * @author Richard Opalka + */ +final class MapDelegatingToSet extends HashMap { + + private final Set delegate; + + MapDelegatingToSet(final Set delegate) { + this.delegate = delegate; + } + + @Override + public int size() { + return delegate.size(); + } + + @Override + public boolean isEmpty() { + return delegate.isEmpty(); + } + + @Override + public Cookie get(final Object key) { + if (key == null) return null; + for (Cookie cookie : delegate) { + if (key.equals(cookie.getName())) return cookie; + } + return null; + } + + @Override + public boolean containsKey(final Object key) { + if (key == null) return false; + for (Cookie cookie : delegate) { + if (key.equals(cookie.getName())) return true; + } + return false; + } + + @Override + public Cookie put(final String key, final Cookie value) { + if (key == null) return null; + final Cookie retVal = remove(key); + if (value != null) { + delegate.add(value); + } + return retVal; + } + + @Override + public void putAll(final Map m) { + if (m == null) return; + for (Map.Entry entry : m.entrySet()) { + put(entry.getKey(), entry.getValue()); + } + } + + @Override + public Cookie remove(final Object key) { + if (key == null) return null; + Cookie removedValue = null; + for (Cookie cookie : delegate) { + if (key.equals(cookie.getName())) { + removedValue = cookie; + break; + } + } + if (removedValue != null) delegate.remove(removedValue); + return removedValue; + } + + @Override + public void clear() { + delegate.clear(); + } + + @Override + public boolean containsValue(final Object value) { + if (value == null) return false; + return delegate.contains(value); + } + + @Override + public Set keySet() { + if (delegate.isEmpty()) return emptySet(); + final Set retVal = new HashSet<>(); + for (Cookie cookie : delegate) { + retVal.add(cookie.getName()); + } + return unmodifiableSet(retVal); + } + + @Override + public Collection values() { + return delegate.isEmpty() ? emptySet() : unmodifiableCollection(delegate); + } + + @Override + public Set> entrySet() { + if (delegate.isEmpty()) return emptySet(); + final Set> retVal = new HashSet<>(delegate.size()); + for (Cookie cookie : delegate) { + retVal.add(new ReadOnlyEntry(cookie.getName(), cookie)); + } + return unmodifiableSet(retVal); + } + + @Override + public Cookie getOrDefault(final Object key, final Cookie defaultValue) { + if (key == null) return null; + final Cookie retVal = get(key); + return retVal != null ? retVal : defaultValue; + } + + @Override + public Cookie putIfAbsent(final String key, final Cookie value) { + if (key == null) return null; + final Cookie oldVal = get(key); + if (oldVal == null) delegate.add(value); + return oldVal; + } + + @Override + public boolean remove(final Object key, final Object value) { + if (key == null || value == null) return false; + Cookie removedValue = null; + for (Cookie cookie : delegate) { + if (cookie == value) { + removedValue = cookie; + break; + } + } + if (removedValue != null) delegate.remove(removedValue); + return removedValue != null; + } + + @Override + public boolean replace(final String key, final Cookie oldValue, final Cookie newValue) { + if (key == null) return false; + final Cookie previousValue = get(key); + if (previousValue == oldValue) { + delegate.remove(oldValue); + if (newValue != null) { + delegate.add(newValue); + } + return true; + } + return false; + } + + @Override + public Cookie replace(final String key, final Cookie value) { + if (key == null) return null; + final Cookie oldValue = get(key); + if (oldValue != null) { + delegate.remove(oldValue); + if (value != null) { + delegate.add(value); + } + } + return oldValue; + } + + @Override + public Cookie computeIfAbsent(final String key, final Function mappingFunction) { + throw new UnsupportedOperationException(); + } + + @Override + public Cookie computeIfPresent(String key, BiFunction remappingFunction) { + throw new UnsupportedOperationException(); + } + + @Override + public Cookie compute(String key, BiFunction remappingFunction) { + throw new UnsupportedOperationException(); + } + + @Override + public Cookie merge(String key, Cookie value, BiFunction remappingFunction) { + throw new UnsupportedOperationException(); + } + + @Override + public void forEach(BiConsumer action) { + throw new UnsupportedOperationException(); + } + + @Override + public void replaceAll(BiFunction function) { + throw new UnsupportedOperationException(); + } + + private static final class ReadOnlyEntry implements Entry { + private final String key; + private final Cookie value; + + private ReadOnlyEntry(final String key, final Cookie value) { + this.key = key; + this.value = value; + } + + @Override + public String getKey() { + return key; + } + + @Override + public Cookie getValue() { + return value; + } + + @Override + public Cookie setValue(final Cookie cookie) { + throw new UnsupportedOperationException(); + } + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/OpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/OverridableTreeSet.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/OverridableTreeSet.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/OverridableTreeSet.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,33 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server; + +import java.util.TreeSet; + +/** + * @author Richard Opalka + */ +final class OverridableTreeSet extends TreeSet { + @Override + public boolean add(final T o) { + // always override previous value + super.remove(o); + super.add(o); + return true; + } +} Index: 3rdParty_sources/undertow/io/undertow/server/ReadOnlyIterator.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/ReadOnlyIterator.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/ReadOnlyIterator.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,54 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server; + +import java.util.Iterator; +import java.util.function.Consumer; + +/** + * @author Richard Opalka + */ +final class ReadOnlyIterator implements Iterator { + + final Iterator delegate; + + ReadOnlyIterator(final Iterator delegate) { + this.delegate = delegate; + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + + @Override + public void forEachRemaining(final Consumer action) { + delegate.forEachRemaining(action); + } + + @Override + public boolean hasNext() { + return delegate.hasNext(); + } + + @Override + public E next() { + return delegate.next(); + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/RenegotiationRequiredException.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/RequestStatistics.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/RequestStatistics.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/RequestStatistics.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,69 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2022 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server; + +import io.undertow.UndertowOptions; + +public final class RequestStatistics { + private final HttpServerExchange exchange; + + public RequestStatistics(HttpServerExchange exchange) { + this.exchange = exchange; + } + + public long getBytesSent() { + return exchange.getResponseBytesSent(); + } + + public long getBytesReceived() { + return exchange.getRequestContentLength(); + } + + public long getStartTime() { + return exchange.getRequestStartTime(); + } + + public long getProcessingTime() { + if (exchange.getConnection().getUndertowOptions().get(UndertowOptions.RECORD_REQUEST_START_TIME, false)) { + return System.nanoTime() - exchange.getRequestStartTime(); + } else { + return -1; + } + } + + public String getQueryString() { + return exchange.getQueryString(); + } + + public String getUri() { + return exchange.getRequestURI(); + } + + public String getMethod() { + return exchange.getRequestMethod().toString(); + } + + public String getProtocol() { + return exchange.getProtocol().toString(); + } + + public String getRemoteAddress() { + return exchange.getSourceAddress().toString(); + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/RequestTooBigException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ResponseCommitListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/RoutingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/SSLSessionInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/SecureCookieCommitListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/ServerConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/TruncatedResponseException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/XnioBufferPoolAdaptor.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/XnioByteBufferPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/AccessControlListHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/ActiveRequestTrackerHandler.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/ActiveRequestTrackerHandler.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/ActiveRequestTrackerHandler.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,109 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2022 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server.handlers; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import io.undertow.UndertowMessages; +import io.undertow.predicate.Predicate; +import io.undertow.server.HandlerWrapper; +import io.undertow.server.RequestStatistics; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.server.handlers.builder.HandlerBuilder; +import io.undertow.util.FastConcurrentDirectDeque; + +/** + * This handler will track all active requests. If the predicate is either null or true, a RequestStatistics object + * is created and stored in the handler. Once the request is finished, the RequestStatistics object is removed from + * the local store, and flow continues to the next listener. + * + * @author Jason Lee + */ +public final class ActiveRequestTrackerHandler implements HttpHandler { + private final FastConcurrentDirectDeque trackedRequests = new FastConcurrentDirectDeque<>(); + private final HttpHandler next; + private final Predicate predicate; + + public ActiveRequestTrackerHandler(HttpHandler next, Predicate predicate) { + if (next == null) { + throw UndertowMessages.MESSAGES.argumentCannotBeNull("next"); + } + + this.predicate = predicate; + this.next = next; + } + + public List getTrackedRequests() { + return new ArrayList<>(trackedRequests); + } + + @Override + public void handleRequest(HttpServerExchange exchange) throws Exception { + if (predicate == null || predicate.resolve(exchange)) { + final RequestStatistics stats = new RequestStatistics(exchange); + + trackedRequests.add(stats); + exchange.addExchangeCompleteListener((exchange1, nextListener) -> { + trackedRequests.remove(stats); + nextListener.proceed(); + }); + } + next.handleRequest(exchange); + } + + public static class Builder implements HandlerBuilder { + + @Override + public String name() { + return "track-request"; + } + + @Override + public Map> parameters() { + return Collections.emptyMap(); + } + + @Override + public Set requiredParameters() { + return Collections.emptySet(); + } + + @Override + public String defaultParameter() { + return null; + } + + @Override + public HandlerWrapper build(Map config) { + return new ActiveRequestTrackerHandler.Wrapper(); + } + + } + + private static class Wrapper implements HandlerWrapper { + @Override + public HttpHandler wrap(HttpHandler handler) { + return new ActiveRequestTrackerHandler(handler, null); + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/AllowedMethodsHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/AttachmentHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/BlockingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingReadTimeoutHandler.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingReadTimeoutHandler.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingReadTimeoutHandler.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,238 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers; + +import static org.wildfly.common.Assert.checkNotNullParam; +import static org.wildfly.common.Assert.checkNotNullParamWithNullPointerException; + +import io.undertow.UndertowLogger; +import io.undertow.UndertowMessages; +import io.undertow.server.ConduitWrapper; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.server.ServerConnection; +import io.undertow.util.ConduitFactory; +import org.xnio.IoUtils; +import org.xnio.XnioIoThread; +import org.xnio.XnioWorker; +import org.xnio.channels.ReadTimeoutException; +import org.xnio.channels.StreamSinkChannel; +import org.xnio.conduits.ReadReadyHandler; +import org.xnio.conduits.StreamSourceConduit; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.time.Duration; +import java.util.concurrent.TimeUnit; + +/** + * {@link BlockingReadTimeoutHandler} allows configurable blocking I/O timeouts + * for read operations within an exchange. + *

+ * Unlike Options.READ_TIMEOUT this only applies to blocking operations which + * can be helpful to prevent the worker pool from becoming saturated when + * clients stop responding. + *

+ * When a timeout occurs, a {@link ReadTimeoutException} is thrown, and the + * {@link ServerConnection} is closed. + * + * @author Carter Kozak + */ +public final class BlockingReadTimeoutHandler implements HttpHandler { + + private final HttpHandler next; + private final ConduitWrapper streamSourceConduitWrapper; + + private BlockingReadTimeoutHandler(HttpHandler next, Duration readTimeout) { + this.next = next; + this.streamSourceConduitWrapper = new TimeoutStreamSourceConduitWrapper(readTimeout); + } + + private static final class TimeoutStreamSourceConduitWrapper implements ConduitWrapper { + + private final long timeoutNanoseconds; + + TimeoutStreamSourceConduitWrapper(Duration readTimeout) { + this.timeoutNanoseconds = readTimeout.toNanos(); + } + + @Override + public StreamSourceConduit wrap(ConduitFactory factory, HttpServerExchange exchange) { + return new TimeoutStreamSourceConduit(factory.create(), exchange.getConnection(), timeoutNanoseconds); + } + } + + @Override + public void handleRequest(HttpServerExchange exchange) throws Exception { + exchange.addRequestWrapper(streamSourceConduitWrapper); + next.handleRequest(exchange); + } + + private static final class TimeoutStreamSourceConduit implements StreamSourceConduit { + private final StreamSourceConduit delegate; + private final ServerConnection serverConnection; + private final long timeoutNanos; + private long remaining; + + TimeoutStreamSourceConduit( + StreamSourceConduit delegate, + ServerConnection serverConnection, + long timeoutNanos) { + this.delegate = delegate; + this.serverConnection = serverConnection; + this.timeoutNanos = timeoutNanos; + this.remaining = timeoutNanos; + } + + @Override + public long transferTo(long position, long count, FileChannel fileChannel) throws IOException { + return resetTimeoutIfReadSucceeded(delegate.transferTo(position, count, fileChannel)); + } + + @Override + public long transferTo(long count, ByteBuffer byteBuffer, StreamSinkChannel streamSinkChannel) throws IOException { + return resetTimeoutIfReadSucceeded(delegate.transferTo(count, byteBuffer, streamSinkChannel)); + } + + @Override + public int read(ByteBuffer byteBuffer) throws IOException { + return resetTimeoutIfReadSucceeded(delegate.read(byteBuffer)); + } + + @Override + public long read(ByteBuffer[] byteBuffers, int offset, int length) throws IOException { + return resetTimeoutIfReadSucceeded(delegate.read(byteBuffers, offset, length)); + } + + @Override + public void terminateReads() throws IOException { + delegate.terminateReads(); + } + + @Override + public boolean isReadShutdown() { + return delegate.isReadShutdown(); + } + + @Override + public void resumeReads() { + delegate.resumeReads(); + } + + @Override + public void suspendReads() { + delegate.suspendReads(); + } + + @Override + public void wakeupReads() { + delegate.wakeupReads(); + } + + @Override + public boolean isReadResumed() { + return delegate.isReadResumed(); + } + + @Override + public void awaitReadable() throws IOException { + awaitReadable(remaining, TimeUnit.NANOSECONDS); + } + + @Override + public void awaitReadable(long duration, TimeUnit unit) throws IOException { + long startTime = System.nanoTime(); + long requestedNanos = unit.toNanos(duration); + try { + delegate.awaitReadable(Math.min(requestedNanos, remaining), TimeUnit.NANOSECONDS); + } finally { + remaining -= System.nanoTime() - startTime; + } + if (remaining < 0) { + ReadTimeoutException rte = UndertowMessages.MESSAGES.blockingReadTimedOut(timeoutNanos); + UndertowLogger.REQUEST_IO_LOGGER.blockingReadTimedOut(rte); + IoUtils.safeClose(serverConnection); + throw rte; + } + } + + @Override + public XnioIoThread getReadThread() { + return delegate.getReadThread(); + } + + @Override + public void setReadReadyHandler(ReadReadyHandler readReadyHandler) { + delegate.setReadReadyHandler(readReadyHandler); + } + + @Override + public XnioWorker getWorker() { + return delegate.getWorker(); + } + + private long resetTimeoutIfReadSucceeded(long value) { + if (value != 0) { + // Reset the timeout + remaining = timeoutNanos; + } + return value; + } + + private int resetTimeoutIfReadSucceeded(int value) { + if (value != 0) { + // Reset the timeout + remaining = timeoutNanos; + } + return value; + } + } + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + + private HttpHandler nextHandler; + private Duration readTimeout; + + private Builder() {} + + public Builder readTimeout(Duration readTimeout) { + this.readTimeout = checkNotNullParamWithNullPointerException("readTimeout", readTimeout); + return this; + } + + public Builder nextHandler(HttpHandler nextHandler) { + this.nextHandler = checkNotNullParamWithNullPointerException("nextHandler", nextHandler); + return this; + } + + public HttpHandler build() { + HttpHandler next = checkNotNullParamWithNullPointerException("nextHandler", nextHandler); + checkNotNullParam("readTimeout", readTimeout); + if (readTimeout.isZero() || readTimeout.isNegative()) { + throw new IllegalArgumentException("Read timeout must be positive: " + readTimeout); + } + return new BlockingReadTimeoutHandler(next, readTimeout); + } + } +} Index: 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingWriteTimeoutHandler.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingWriteTimeoutHandler.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/BlockingWriteTimeoutHandler.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,270 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers; + +import static org.wildfly.common.Assert.checkNotNullParam; +import static org.wildfly.common.Assert.checkNotNullParamWithNullPointerException; + +import io.undertow.UndertowLogger; +import io.undertow.UndertowMessages; +import io.undertow.server.ConduitWrapper; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.server.ServerConnection; +import io.undertow.util.ConduitFactory; +import org.xnio.IoUtils; +import org.xnio.XnioIoThread; +import org.xnio.XnioWorker; +import org.xnio.channels.StreamSourceChannel; +import org.xnio.channels.WriteTimeoutException; +import org.xnio.conduits.StreamSinkConduit; +import org.xnio.conduits.WriteReadyHandler; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.time.Duration; +import java.util.concurrent.TimeUnit; + +/** + * BlockingTimeoutHandler allows configurable blocking I/O timeouts for write + * operations within an exchange. + *

+ * Unlike Options.WRITE_TIMEOUT this only applies to blocking operations which + * can be helpful to prevent the worker pool from becoming saturated when + * clients stop responding. + *

+ * When a timeout occurs, a {@link WriteTimeoutException} is thrown, and the + * {@link ServerConnection} is closed. + * + * @author Carter Kozak + */ +public final class BlockingWriteTimeoutHandler implements HttpHandler { + + private final HttpHandler next; + private final ConduitWrapper streamSinkConduitWrapper; + + private BlockingWriteTimeoutHandler(HttpHandler next, Duration writeTimeout) { + this.next = next; + this.streamSinkConduitWrapper = new TimeoutStreamSinkConduitWrapper(writeTimeout); + } + + private static final class TimeoutStreamSinkConduitWrapper implements ConduitWrapper { + + private final long timeoutNanoseconds; + + TimeoutStreamSinkConduitWrapper(Duration writeTimeout) { + this.timeoutNanoseconds = writeTimeout.toNanos(); + } + + @Override + public StreamSinkConduit wrap(ConduitFactory factory, HttpServerExchange exchange) { + return new TimeoutStreamSinkConduit(factory.create(), exchange.getConnection(), timeoutNanoseconds); + } + } + + @Override + public void handleRequest(HttpServerExchange exchange) throws Exception { + exchange.addResponseWrapper(streamSinkConduitWrapper); + next.handleRequest(exchange); + } + + private static final class TimeoutStreamSinkConduit implements StreamSinkConduit { + + private final StreamSinkConduit delegate; + private final ServerConnection serverConnection; + private final long timeoutNanos; + private long remaining; + + TimeoutStreamSinkConduit( + StreamSinkConduit delegate, + ServerConnection serverConnection, + long timeoutNanos) { + this.delegate = delegate; + this.serverConnection = serverConnection; + this.timeoutNanos = timeoutNanos; + this.remaining = timeoutNanos; + } + + @Override + public long transferFrom(FileChannel fileChannel, long position, long count) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.transferFrom(fileChannel, position, count)); + } + + @Override + public long transferFrom( + StreamSourceChannel streamSourceChannel, + long count, + ByteBuffer byteBuffer) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.transferFrom(streamSourceChannel, count, byteBuffer)); + } + + @Override + public int write(ByteBuffer byteBuffer) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.write(byteBuffer)); + } + + @Override + public long write(ByteBuffer[] byteBuffers, int offset, int length) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.write(byteBuffers, offset, length)); + } + + @Override + public int writeFinal(ByteBuffer byteBuffer) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.writeFinal(byteBuffer)); + } + + @Override + public long writeFinal(ByteBuffer[] byteBuffers, int offset, int length) throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.writeFinal(byteBuffers, offset, length)); + } + + @Override + public void terminateWrites() throws IOException { + delegate.terminateWrites(); + } + + @Override + public boolean isWriteShutdown() { + return delegate.isWriteShutdown(); + } + + @Override + public void resumeWrites() { + delegate.resumeWrites(); + } + + @Override + public void suspendWrites() { + delegate.suspendWrites(); + } + + @Override + public void wakeupWrites() { + delegate.wakeupWrites(); + } + + @Override + public boolean isWriteResumed() { + return delegate.isWriteResumed(); + } + + @Override + public void awaitWritable() throws IOException { + awaitWritable(remaining, TimeUnit.NANOSECONDS); + } + + @Override + public void awaitWritable(long duration, TimeUnit unit) throws IOException { + long startTime = System.nanoTime(); + long requestedNanos = unit.toNanos(duration); + try { + delegate.awaitWritable(Math.min(requestedNanos, remaining), TimeUnit.NANOSECONDS); + } finally { + remaining -= System.nanoTime() - startTime; + } + if (remaining < 0) { + WriteTimeoutException wte = UndertowMessages.MESSAGES.blockingWriteTimedOut(timeoutNanos); + UndertowLogger.REQUEST_IO_LOGGER.blockingWriteTimedOut(wte); + IoUtils.safeClose(serverConnection); + throw wte; + } + } + + @Override + public XnioIoThread getWriteThread() { + return delegate.getWriteThread(); + } + + @Override + public void setWriteReadyHandler(WriteReadyHandler writeReadyHandler) { + delegate.setWriteReadyHandler(writeReadyHandler); + } + + @Override + public void truncateWrites() throws IOException { + delegate.truncateWrites(); + } + + @Override + public boolean flush() throws IOException { + return resetTimeoutIfWriteSucceeded(delegate.flush()); + } + + @Override + public XnioWorker getWorker() { + return delegate.getWorker(); + } + + private long resetTimeoutIfWriteSucceeded(long value) { + if (value != 0) { + // Reset the timeout + remaining = timeoutNanos; + } + return value; + } + + private int resetTimeoutIfWriteSucceeded(int value) { + if (value != 0) { + // Reset the timeout + remaining = timeoutNanos; + } + return value; + } + + private boolean resetTimeoutIfWriteSucceeded(boolean value) { + if (value) { + // Reset the timeout + remaining = timeoutNanos; + } + return value; + } + } + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + + private HttpHandler nextHandler; + private Duration writeTimeout; + + private Builder() {} + + public Builder writeTimeout(Duration writeTimeout) { + this.writeTimeout = checkNotNullParamWithNullPointerException("writeTimeout", writeTimeout); + return this; + } + + public Builder nextHandler(HttpHandler nextHandler) { + this.nextHandler = checkNotNullParamWithNullPointerException("nextHandler", nextHandler); + return this; + } + + public HttpHandler build() { + HttpHandler next = checkNotNullParamWithNullPointerException("nextHandler", nextHandler); + checkNotNullParam("writeTimeout", writeTimeout); + if (writeTimeout.isZero() || writeTimeout.isNegative()) { + throw new IllegalArgumentException("Write timeout must be positive: " + writeTimeout); + } + return new BlockingWriteTimeoutHandler(next, writeTimeout); + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ByteRangeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/CanonicalPathHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ChannelUpgradeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ConfiguredPushHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ConnectHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/Cookie.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/CookieImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/CookieSameSiteMode.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/CookieSameSiteMode.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/CookieSameSiteMode.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,72 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers; + +public enum CookieSameSiteMode { + + /** + * The browser will only send cookies for same-site requests (requests originating from the site that set the cookie). + * If the request originated from a different URL than the URL of the current location, none of the cookies tagged + * with the Strict attribute will be included. + */ + STRICT("Strict"), + + /** + * Same-site cookies are withheld on cross-site subrequests, such as calls to load images or frames, but will be sent + * when a user navigates to the URL from an external site; for example, by following a link. + */ + LAX("Lax"), + + /** + * The browser will send cookies with both cross-site requests and same-site requests. + */ + NONE("None"); + + private static final CookieSameSiteMode[] SAMESITE_MODES = values(); + + /** + * Just use a human friendly label instead of the capitalized name. + */ + private final String label; + + CookieSameSiteMode(String label) { + this.label = label; + } + + /** + * lookup from the specified value and return a correct SameSiteMode string. + * + * @param mode + * @return A name of SameSite mode. Returns {@code null} if an invalid SameSite mode is specified. + */ + public static String lookupModeString(String mode) { + for (CookieSameSiteMode m : SAMESITE_MODES) { + if (m.name().equalsIgnoreCase(mode)) { + return m.toString(); + } + } + return null; + } + + @Override + public String toString() { + return label; + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/DateHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/DisableCacheHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/DisallowedMethodsHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ExceptionHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ForwardedHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/GracefulShutdownHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/HttpContinueAcceptingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/HttpContinueReadHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/HttpTraceHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/HttpUpgradeHandshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/IPAddressAccessControlHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/JDBCLogHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/LearningPushHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/LocalNameResolvingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/MetricsHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/NameVirtualHostHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/OriginHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PathHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PathSeparatorHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PathTemplateHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PeerNameResolvingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PredicateContextHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/PredicateHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ProxyPeerAddressHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/RedirectHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/RequestBufferingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/RequestDumpingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/RequestLimit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/RequestLimitingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ResponseCodeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/ResponseRateLimitingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/SSLHeaderHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/SameSiteCookieHandler.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/SameSiteCookieHandler.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/SameSiteCookieHandler.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,146 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; + +import io.undertow.server.HandlerWrapper; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.server.ResponseCommitListener; +import io.undertow.server.handlers.builder.HandlerBuilder; +import io.undertow.util.Headers; +import io.undertow.util.SameSiteNoneIncompatibleClientChecker; + +/** + * Handler that will set the SameSite flag to response cookies + * @author Richard Opalka + */ +public class SameSiteCookieHandler implements HttpHandler { + + private final HttpHandler next; + private final String mode; + private final Pattern cookiePattern; + private final boolean enableClientChecker; + private final boolean addSecureForNone; + + public SameSiteCookieHandler(final HttpHandler next, final String mode) { + this(next, mode, null, true, true, true); + } + + public SameSiteCookieHandler(final HttpHandler next, final String mode, final String cookiePattern) { + this(next, mode, cookiePattern, true, true, true); + } + + public SameSiteCookieHandler(final HttpHandler next, final String mode, final String cookiePattern, final boolean caseSensitive) { + this(next, mode, cookiePattern, caseSensitive, true, true); + } + + public SameSiteCookieHandler(final HttpHandler next, final String mode, final String cookiePattern, final boolean caseSensitive, final boolean enableClientChecker, final boolean addSecureForNone) { + this.next = next; + this.mode = mode; + if (cookiePattern != null && !cookiePattern.isEmpty()) { + this.cookiePattern = Pattern.compile(cookiePattern, caseSensitive ? 0 : Pattern.CASE_INSENSITIVE); + } else { + this.cookiePattern = null; + } + final boolean modeIsNone = CookieSameSiteMode.NONE.toString().equalsIgnoreCase(mode); + this.enableClientChecker = enableClientChecker && modeIsNone; // client checker is enabled only for SameSite=None + this.addSecureForNone = addSecureForNone && modeIsNone; // Add secure attribute for SameSite=None + } + + @Override + public void handleRequest(HttpServerExchange exchange) throws Exception { + if (mode != null) { + exchange.addResponseCommitListener(new ResponseCommitListener() { + @Override + public void beforeCommit(HttpServerExchange exchange) { + // If user-agent is available check it and skip sending "SameSite=None" for incompatible user-agents + String userAgent = exchange.getRequestHeaders().getFirst(Headers.USER_AGENT); + if (enableClientChecker && userAgent != null && !SameSiteNoneIncompatibleClientChecker.shouldSendSameSiteNone(userAgent)) { + return; + } + for (Cookie cookie : exchange.responseCookies()) { + if (cookiePattern == null || cookiePattern.matcher(cookie.getName()).matches()) { + // set SameSite attribute to all response cookies when cookie pattern is not specified. + // or, set SameSite attribute if cookie name matches the specified cookie pattern. + cookie.setSameSiteMode(mode); + if (addSecureForNone) { + // Add secure attribute for "SameSite=None" + cookie.setSecure(true); + } + } + } + } + }); + } + next.handleRequest(exchange); + } + + public static class Builder implements HandlerBuilder { + + @Override + public String name() { + return "samesite-cookie"; + } + + @Override + public Map> parameters() { + Map> parameters = new HashMap<>(); + parameters.put("mode", String.class); + parameters.put("cookie-pattern", String.class); + parameters.put("case-sensitive", Boolean.class); + parameters.put("enable-client-checker", Boolean.class); + parameters.put("add-secure-for-none", Boolean.class); + return parameters; + } + + @Override + public Set requiredParameters() { + return Collections.singleton("mode"); + } + + @Override + public String defaultParameter() { + return "mode"; + } + + @Override + public HandlerWrapper build(Map config) { + final String mode = (String) config.get("mode"); + final String pattern = (String) config.get("cookie-pattern"); + final Boolean caseSensitive = (Boolean) config.get("case-sensitive"); + final Boolean enableClientChecker = (Boolean) config.get("enable-client-checker"); + final Boolean addSecureForNone = (Boolean) config.get("add-secure-for-none"); + return new HandlerWrapper() { + @Override + public HttpHandler wrap(HttpHandler handler) { + return new SameSiteCookieHandler(handler, mode, pattern, + caseSensitive == null ? true : caseSensitive, + enableClientChecker == null ? true : enableClientChecker, + addSecureForNone == null ? true : addSecureForNone); + } + }; + } + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/SecureCookieHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/SetAttributeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/SetErrorHandler.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/SetErrorHandler.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/SetErrorHandler.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,111 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers; + +import io.undertow.server.HandlerWrapper; +import io.undertow.server.HttpHandler; +import io.undertow.server.HttpServerExchange; +import io.undertow.server.handlers.builder.HandlerBuilder; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * A handler that sets response code but continues the exchange so the servlet's + * error page can be returned. + * + * @author Brad Wood + */ +public class SetErrorHandler implements HttpHandler { + + private final int responseCode; + private final HttpHandler next; + + /** + * Construct a new instance. + * + * @param responseCode the response code to set + */ + public SetErrorHandler(HttpHandler next, final int responseCode) { + this.next = next; + this.responseCode = responseCode; + } + + @Override + public void handleRequest(final HttpServerExchange exchange) throws Exception { + exchange.setStatusCode(responseCode); + next.handleRequest(exchange); + } + + @Override + public String toString() { + return "set-error( " + responseCode + " )"; + } + + + public static class Builder implements HandlerBuilder { + + @Override + public String name() { + return "set-error"; + } + + @Override + public Map> parameters() { + Map> params = new HashMap<>(); + params.put("response-code", Integer.class); + return params; + } + + @Override + public Set requiredParameters() { + final Set req = new HashSet<>(); + req.add("response-code"); + return req; + } + + @Override + public String defaultParameter() { + return "response-code"; + } + + @Override + public HandlerWrapper build(Map config) { + return new Wrapper((Integer) config.get("response-code")); + } + + } + + private static class Wrapper implements HandlerWrapper { + + private final Integer responseCode; + + private Wrapper(Integer responseCode) { + this.responseCode = responseCode; + } + + @Override + public HttpHandler wrap(HttpHandler handler) { + return new SetErrorHandler(handler, responseCode); + } + } + +} \ No newline at end of file Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/SetHeaderHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/StoredResponseHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/StuckThreadDetectionHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/URLDecodingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/AccessLogHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/AccessLogReceiver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/DefaultAccessLogReceiver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/ExtendedAccessLogParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/JBossLoggingAccessLogReceiver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/accesslog/LogFileHeaderGenerator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/HandlerBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/HandlerParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/PredicatedHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/PredicatedHandlersParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/ResponseCodeHandlerBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/builder/RewriteHandlerBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/CacheHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/CachedHttpRequest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/DirectBufferCache.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/LRUCache.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/LimitedBufferSlicePool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/ResponseCache.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/ResponseCachingSender.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/cache/ResponseCachingStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/AllowedContentEncodings.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/ContentEncodedResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/ContentEncodedResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/ContentEncodingProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/ContentEncodingRepository.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/DeflateEncodingProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/EncodingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/EncodingMapping.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/GzipEncodingProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/encoding/RequestEncodingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/error/FileErrorPageHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/error/SimpleErrorPageHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/EagerFormParsingHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/FormData.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/FormDataParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/FormEncodedDataDefinition.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/FormParserFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/form/MultiPartParserDefinition.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ConnectionPoolErrorHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ConnectionPoolManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ExclusivityChecker.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/HostTable.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/LoadBalancingProxyClient.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyClient.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyConnectionPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyConnectionPoolConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/ProxyHandlerBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteIteratorFactory.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteIteratorFactory.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteIteratorFactory.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,150 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2019 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers.proxy; + +import java.nio.CharBuffer; +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** + * Factory for route/affinity iterator parser. This implementation lazily parses routes while supporting strategies in + * {@link RouteParsingStrategy} including ranked routing. The iterator never creates new String instances but returns + * a CharSequence wrapper from the existing session ID. + * + * @author Radoslav Husar + */ +public class RouteIteratorFactory { + + public enum ParsingCompatibility { + MOD_JK, + MOD_CLUSTER, + } + + private final RouteParsingStrategy routeParsingStrategy; + private final ParsingCompatibility parsingCompatibility; + private final String rankedRouteDelimiter; + + /** + * @param routeParsingStrategy route parsing strategy + * @param parsingCompatibility route parsing compatibility behavior + */ + public RouteIteratorFactory(RouteParsingStrategy routeParsingStrategy, ParsingCompatibility parsingCompatibility) { + this(routeParsingStrategy, parsingCompatibility, null); + } + + /** + * @param routeParsingStrategy route parsing strategy + * @param parsingCompatibility route parsing compatibility behavior + * @param rankedRouteDelimiter String sequence to split routes at if ranked routing is enabled + */ + public RouteIteratorFactory(RouteParsingStrategy routeParsingStrategy, ParsingCompatibility parsingCompatibility, String rankedRouteDelimiter) { + if (routeParsingStrategy == RouteParsingStrategy.RANKED && rankedRouteDelimiter == null) { + throw new IllegalArgumentException(); + } + this.routeParsingStrategy = routeParsingStrategy; + this.parsingCompatibility = parsingCompatibility; + this.rankedRouteDelimiter = rankedRouteDelimiter; + } + + /** + * Returns an {@link Iterator} of routes. + * + * @param sessionId String of sessionID from the cookie/parameter possibly including encoded/appended affinity/route information + * @return routes iterator; never returns {@code null} + */ + public Iterator iterator(String sessionId) { + return new RouteIterator(sessionId); + } + + private class RouteIterator implements Iterator { + + private final String sessionId; + + private boolean nextResolved; + private int nextPos; + private CharSequence next; + + RouteIterator(String sessionId) { + this.sessionId = sessionId; + + if (routeParsingStrategy == RouteParsingStrategy.NONE) { + this.nextResolved = true; + this.next = null; + } else { + int index = (sessionId == null) ? -1 : sessionId.indexOf('.'); + if (index == -1) { + // Case where there is no routing information at all. + this.nextResolved = true; + this.next = null; + } else { + nextPos = index + 1; + } + } + } + + @Override + public boolean hasNext() { + resolveNext(); + + return next != null; + } + + @Override + public CharSequence next() { + resolveNext(); + + if (next != null) { + CharSequence result = next; + nextResolved = (routeParsingStrategy != RouteParsingStrategy.RANKED); + next = null; + + return result; + } + throw new NoSuchElementException(); + } + + private void resolveNext() { + if (!nextResolved) { + if (routeParsingStrategy != RouteParsingStrategy.RANKED) { + if (parsingCompatibility == ParsingCompatibility.MOD_JK) { + // mod_jk aka LoadBalancingProxyClient uses mod_jk parsing mechanism though never supports domain + // it treats route only as the sequence after the first "." but before the second "."; + // i.e. does not allow "." in route + int last = sessionId.indexOf('.', nextPos); + if (last == -1) { + last = sessionId.length(); + } + next = CharBuffer.wrap(sessionId, nextPos, last); + } else { + // mod_cluster treats everything after first "." as the route; i.e. allows "." in route + next = CharBuffer.wrap(sessionId, nextPos, sessionId.length()); + } + } else if (nextPos >= sessionId.length()) { + next = null; + } else { + int currentPos = sessionId.indexOf(rankedRouteDelimiter, nextPos); + next = CharBuffer.wrap(sessionId, nextPos, (currentPos != -1) ? currentPos : sessionId.length()); + nextPos += next.length() + rankedRouteDelimiter.length(); + } + nextResolved = true; + } + } + + } +} Index: 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteParsingStrategy.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteParsingStrategy.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/proxy/RouteParsingStrategy.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,39 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2019 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.server.handlers.proxy; + +/** + * Enumeration of supported route parsing strategies. + * + * @author Radoslav Husar + */ +public enum RouteParsingStrategy { + /** + * Ignores encoded route/affinity information altogether, essentially disabling session stickiness on the load balancer. + */ + NONE, + /** + * Default behavior. + */ + SINGLE, + /** + * Enables ranked affinity support. + */ + RANKED, +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/SimpleProxyClientProvider.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/Balancer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/Context.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPAdvertiseTask.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPConstants.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPErrorCode.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPInfoUtil.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/MCMPWebManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModCluster.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModClusterContainer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModClusterController.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModClusterProxyClient.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModClusterProxyTarget.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/ModClusterStatus.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/Node.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/NodeConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/NodeHealthChecker.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/NodeLbStatus.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/NodePingUtil.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/NodeStatus.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/proxy/mod_cluster/VirtualHost.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/CachedResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/CachingResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ClassPathResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/DefaultResourceSupplier.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/DirectoryUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/FileResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/FileResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/PathResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/PathResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/PreCompressedResourceSupplier.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/RangeAwareResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/Resource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ResourceChangeEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ResourceChangeListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ResourceHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ResourceManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/ResourceSupplier.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/handlers/resource/SecurityActions.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/handlers/resource/SecurityActions.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/handlers/resource/SecurityActions.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,40 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server.handlers.resource; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.AccessController; +import java.security.PrivilegedAction; + +class SecurityActions { + + static Boolean isSymbolicLink(Path file) { + if (System.getSecurityManager() == null) { + return Files.isSymbolicLink(file); + } else { + return AccessController.doPrivileged(new PrivilegedAction() { + @Override + public Boolean run() { + return Files.isSymbolicLink(file); + } + }); + } + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/resource/URLResource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/sse/ServerSentEventConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/sse/ServerSentEventConnectionCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/handlers/sse/ServerSentEventHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ParseTimeoutUpdater.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpOpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpReadListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpRequestParseState.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpRequestParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpServerConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpServerRequestConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/ajp/AjpServerResponseConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/server/protocol/ajp/SecurityActions.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/server/protocol/ajp/SecurityActions.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/server/protocol/ajp/SecurityActions.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,44 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.server.protocol.ajp; + +import static java.lang.System.getProperty; +import static java.lang.System.getSecurityManager; +import static java.security.AccessController.doPrivileged; + +import java.security.PrivilegedAction; + +/** + * Security actions to access system environment information. No methods in + * this class are to be made public under any circumstances! + */ +final class SecurityActions { + + private SecurityActions() { + // forbidden inheritance + } + + static String getSystemProperty(final String key) { + return getSecurityManager() == null ? getProperty(key) : doPrivileged(new PrivilegedAction() { + @Override + public String run() { + return getProperty(key); + } + }); + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/AbstractFramedChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/FrameHeaderData.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/FramePriority.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/SendFrameHeader.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/framed/ShutdownFallbackExecutor.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/ALPNBannedCiphers.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/ALPNLimitingSSLEngine.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/ALPNOfferedClientHelloExplorer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/AlpnOpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/CacheMap.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpAttachments.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpContinue.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpOpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpReadListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpRequestParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpResponseConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpServerConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/HttpTransferEncoding.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/ParseState.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http/ServerFixedLengthStreamSinkConduit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http2/Http2OpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http2/Http2ReceiveListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http2/Http2ServerConnection.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http2/Http2SslSessionInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/http2/Http2UpgradeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/proxy/ProxyProtocolOpenListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/protocol/proxy/ProxyProtocolReadListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/InMemorySessionManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/PathParameterSessionConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SecureRandomSessionIdGenerator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/Session.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionAttachmentHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionCookieConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionIdGenerator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionListeners.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SessionManagerStatistics.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/server/session/SslSessionConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletLogger_$logger.java =================================================================== diff -u -r0c9c83107d623392869f43619926ea6d8ec5beab -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletLogger_$logger.java (.../UndertowServletLogger_$logger.java) (revision 0c9c83107d623392869f43619926ea6d8ec5beab) +++ 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletLogger_$logger.java (.../UndertowServletLogger_$logger.java) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -26,7 +26,7 @@ /** * Warning this class consists of generated code. */ -@Generated(value = "org.jboss.logging.processor.generator.model.MessageLoggerImplementor", date = "2023-10-17T11:11:27-0300") +@Generated(value = "org.jboss.logging.processor.generator.model.MessageLoggerImplementor", date = "2024-02-21T04:12:18-0300") public class UndertowServletLogger_$logger extends DelegatingBasicLogger implements UndertowServletLogger, BasicLogger, Serializable { private static final long serialVersionUID = 1L; private static final String FQCN = UndertowServletLogger_$logger.class.getName(); Index: 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletMessages_$bundle.java =================================================================== diff -u -r0c9c83107d623392869f43619926ea6d8ec5beab -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletMessages_$bundle.java (.../UndertowServletMessages_$bundle.java) (revision 0c9c83107d623392869f43619926ea6d8ec5beab) +++ 3rdParty_sources/undertow/io/undertow/servlet/UndertowServletMessages_$bundle.java (.../UndertowServletMessages_$bundle.java) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -23,7 +23,7 @@ /** * Warning this class consists of generated code. */ -@Generated(value = "org.jboss.logging.processor.generator.model.MessageBundleImplementor", date = "2023-10-17T11:11:27-0300") +@Generated(value = "org.jboss.logging.processor.generator.model.MessageBundleImplementor", date = "2024-02-21T04:12:18-0300") public class UndertowServletMessages_$bundle implements UndertowServletMessages, Serializable { private static final long serialVersionUID = 1L; protected UndertowServletMessages_$bundle() {} Index: 3rdParty_sources/undertow/io/undertow/servlet/spec/HttpServletRequestImpl.java =================================================================== diff -u -r0c9c83107d623392869f43619926ea6d8ec5beab -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- 3rdParty_sources/undertow/io/undertow/servlet/spec/HttpServletRequestImpl.java (.../HttpServletRequestImpl.java) (revision 0c9c83107d623392869f43619926ea6d8ec5beab) +++ 3rdParty_sources/undertow/io/undertow/servlet/spec/HttpServletRequestImpl.java (.../HttpServletRequestImpl.java) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -758,7 +758,7 @@ final FormData parsedFormData = parseFormData(); if (parsedFormData != null) { FormData.FormValue res = parsedFormData.getFirst(name); - if (res == null || res.isFileItem()) { + if (res == null || res.isFileItem() && !res.isBigField()) { return null; } else { return res.getValue(); @@ -781,7 +781,7 @@ while (it.hasNext()) { String name = it.next(); for(FormData.FormValue param : parsedFormData.get(name)) { - if(!param.isFileItem()) { + if(!param.isFileItem() || param.isBigField()) { parameterNames.add(name); break; } @@ -808,7 +808,7 @@ Deque res = parsedFormData.get(name); if (res != null) { for (FormData.FormValue value : res) { - if(!value.isFileItem()) { + if(!value.isFileItem() || value.isBigField()) { ret.add(value.getValue()); } } @@ -839,14 +839,14 @@ if (arrayMap.containsKey(name)) { ArrayList existing = arrayMap.get(name); for (final FormData.FormValue v : val) { - if(!v.isFileItem()) { + if(!v.isFileItem() || v.isBigField()) { existing.add(v.getValue()); } } } else { final ArrayList values = new ArrayList<>(); for (final FormData.FormValue v : val) { - if(!v.isFileItem()) { + if(!v.isFileItem() || v.isBigField()) { values.add(v.getValue()); } } @@ -1075,9 +1075,10 @@ } else if (asyncStarted) { throw UndertowServletMessages.MESSAGES.asyncAlreadyStarted(); } - asyncStarted = true; final ServletRequestContext servletRequestContext = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY); - return asyncContext = new AsyncContextImpl(exchange, servletRequestContext.getServletRequest(), servletRequestContext.getServletResponse(), servletRequestContext, false, asyncContext); + asyncContext = new AsyncContextImpl(exchange, servletRequestContext.getServletRequest(), servletRequestContext.getServletResponse(), servletRequestContext, false, asyncContext); + asyncStarted = true; + return asyncContext; } @Override @@ -1100,10 +1101,11 @@ } else if (asyncStarted) { throw UndertowServletMessages.MESSAGES.asyncAlreadyStarted(); } - asyncStarted = true; servletRequestContext.setServletRequest(servletRequest); servletRequestContext.setServletResponse(servletResponse); - return asyncContext = new AsyncContextImpl(exchange, servletRequest, servletResponse, servletRequestContext, true, asyncContext); + asyncContext = new AsyncContextImpl(exchange, servletRequest, servletResponse, servletRequestContext, true, asyncContext); + asyncStarted = true; + return asyncContext; } @Override Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/AbstractAttachable.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Attachable.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/AttachmentKey.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/AttachmentList.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/BadRequestException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ByteRange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/CanonicalPathUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Certificates.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ChainedHandlerWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ClosingChannelExceptionHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ConcurrentDirectDeque.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ConduitFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ConnectionUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Cookies.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/CopyOnWriteMap.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/DateUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ETag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ETagUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/FastConcurrentDirectDeque.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/FileUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/FlexBase64.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HeaderMap.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HeaderToken.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HeaderTokenParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HeaderValues.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Headers.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HexConverter.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/HttpString.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ImmediateAuthenticationMechanismFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ImmediateConduitFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ImmediatePooled.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ImmediatePooledByteBuffer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/LegacyCookieSupport.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/LocaleUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/MalformedMessageException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Methods.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/MimeMappings.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/MultipartParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/NetworkUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/NewInstanceObjectPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ObjectPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ParameterLimitException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PathMatcher.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PathTemplate.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PathTemplateMatch.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PathTemplateMatcher.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PipeliningExecutor.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PooledAdaptor.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PooledObject.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/PortableConcurrentDirectDeque.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Protocols.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/QValueParser.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/QueryParameterUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/RedirectBuilder.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/ReferenceCountedPooled.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Rfc6265CookieSupport.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/util/SameSiteNoneIncompatibleClientChecker.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/util/SameSiteNoneIncompatibleClientChecker.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/util/SameSiteNoneIncompatibleClientChecker.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,157 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2020 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.util; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * A utility class that can check known user agents which are known to be incompatible with SameSite=None attribute. + *

+ *

    + *
  • Versions of Chrome from Chrome 51 to Chrome 66 (inclusive on both ends). + * These Chrome versions will reject a cookie with `SameSite=None`. This also + * affects older versions of Chromium-derived browsers, as well as Android WebView. + * This behavior was correct according to the version of the cookie specification + * at that time, but with the addition of the new "None" value to the specification, + * this behavior has been updated in Chrome 67 and newer. (Prior to Chrome 51, + * the SameSite attribute was ignored entirely and all cookies were treated as if + * they were `SameSite=None`.)
  • + *
  • Versions of UC Browser on Android prior to version 12.13.2. Older versions + * will reject a cookie with `SameSite=None`. This behavior was correct according + * to the version of the cookie specification at that time, but with the addition of + * the new "None" value to the specification, this behavior has been updated in newer + * versions of UC Browser. + *
  • Versions of Safari and embedded browsers on MacOS 10.14 and all browsers on iOS 12. + * These versions will erroneously treat cookies marked with `SameSite=None` as if they + * were marked `SameSite=Strict`. This bug has been fixed on newer versions of iOS and MacOS. + *
+ *

+ * @see SameSite=None: Known Incompatible Clients. + */ +public final class SameSiteNoneIncompatibleClientChecker { + + /** + * User Agents Regex Patterns + */ + private static final Pattern IOS_PATTERN = Pattern.compile("\\(iP.+; CPU .*OS (\\d+)[_\\d]*.*\\) AppleWebKit\\/"); + private static final Pattern MACOSX_PATTERN = Pattern.compile("\\(Macintosh;.*Mac OS X (\\d+)_(\\d+)[_\\d]*.*\\) AppleWebKit\\/"); + private static final Pattern SAFARI_PATTERN = Pattern.compile("Version\\/.* Safari\\/"); + private static final Pattern MAC_EMBEDDED_BROWSER_PATTERN = Pattern.compile("^Mozilla\\/[\\.\\d]+ \\(Macintosh;.*Mac OS X [_\\d]+\\) AppleWebKit\\/[\\.\\d]+ \\(KHTML, like Gecko\\)$"); + private static final Pattern CHROMIUM_PATTERN = Pattern.compile("Chrom(e|ium)"); + private static final Pattern CHROMIUM_VERSION_PATTERN = Pattern.compile("Chrom[^ \\/]+\\/(\\d+)[\\.\\d]* "); + // private static final Pattern UC_BROWSER_PATTERN = Pattern.compile("UCBrowser\\/"); + private static final Pattern UC_BROWSER_VERSION_PATTERN = Pattern.compile("UCBrowser\\/(\\d+)\\.(\\d+)\\.(\\d+)[\\.\\d]* "); + + public static boolean shouldSendSameSiteNone(String useragent) { + return !isSameSiteNoneIncompatible(useragent); + } + + // browsers known to be incompatible. + public static boolean isSameSiteNoneIncompatible(String useragent) { + if (useragent == null || useragent.isEmpty()) { + return false; + } + + return hasWebKitSameSiteBug(useragent) || + dropsUnrecognizedSameSiteCookies(useragent); + } + + private static boolean hasWebKitSameSiteBug(String useragent) { + return isIosVersion(12, useragent) || + (isMacosxVersion(10, 14, useragent) && + (isSafari(useragent) || isMacEmbeddedBrowser(useragent))); + } + + private static boolean dropsUnrecognizedSameSiteCookies(String useragent) { + if (isUcBrowser(useragent)) { + return !isUcBrowserVersionAtLeast(12, 13, 2, useragent); + } + return isChromiumBased(useragent) && + isChromiumVersionAtLeast(51, useragent) && + !isChromiumVersionAtLeast(67, useragent); + } + + // Regex parsing of User-Agent String. (See note above!) + + private static boolean isIosVersion(int major, String useragent) { + Matcher m = IOS_PATTERN.matcher(useragent); + if (m.find()) { + // Extract digits from first capturing group. + return String.valueOf(major).equals(m.group(1)); + } + return false; + } + + private static boolean isMacosxVersion(int major, int minor, String useragent) { + Matcher m = MACOSX_PATTERN.matcher(useragent); + if (m.find()) { + // Extract digits from first and second capturing groups. + return String.valueOf(major).equals(m.group(1)) && + String.valueOf(minor).equals(m.group(2)); + } + return false; + } + + private static boolean isSafari(String useragent) { + return SAFARI_PATTERN.matcher(useragent).find() && + !isChromiumBased(useragent); + } + + private static boolean isMacEmbeddedBrowser(String useragent) { + return MAC_EMBEDDED_BROWSER_PATTERN.matcher(useragent).find(); + } + + private static boolean isChromiumBased(String useragent) { + return CHROMIUM_PATTERN.matcher(useragent).find(); + } + + private static boolean isChromiumVersionAtLeast(int major, String useragent) { + Matcher m = CHROMIUM_VERSION_PATTERN.matcher(useragent); + if (m.find()) { + // Extract digits from first capturing group. + int version = Integer.parseInt(m.group(1)); + return version >= major; + } + return false; + } + + static boolean isUcBrowser(String useragent) { + return useragent.contains("UCBrowser/"); + } + + private static boolean isUcBrowserVersionAtLeast(int major, int minor, int build, String useragent) { + Matcher m = UC_BROWSER_VERSION_PATTERN.matcher(useragent); + if (m.find()) { + // Extract digits from three capturing groups. + int major_version = Integer.parseInt(m.group(1)); + int minor_version = Integer.parseInt(m.group(2)); + int build_version = Integer.parseInt(m.group(3)); + if (major_version != major) { + return major_version > major; + } + if (minor_version != minor) { + return minor_version > minor; + } + return build_version >= build; + } + return false; + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/SameThreadExecutor.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/util/SecurityActions.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/util/SecurityActions.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/util/SecurityActions.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,44 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2022 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.undertow.util; + +import static java.lang.System.getProperty; +import static java.lang.System.getSecurityManager; +import static java.security.AccessController.doPrivileged; + +import java.security.PrivilegedAction; + +/** + * Security actions to access system environment information. No methods in + * this class are to be made public under any circumstances! + */ +final class SecurityActions { + + private SecurityActions() { + // forbidden inheritance + } + + static String getSystemProperty(final String key, final String def) { + return getSecurityManager() == null ? getProperty(key) : doPrivileged(new PrivilegedAction() { + @Override + public String run() { + return getProperty(key,def); + } + }); + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Sessions.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/SimpleAttachmentKey.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/SimpleObjectPool.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/StatusCodes.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/StringReadChannelListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/StringWriteChannelListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/SubstringMap.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/Transfer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/URLUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/util/UrlDecodeException.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/util/UrlDecodeException.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/util/UrlDecodeException.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,30 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2019 Red Hat, Inc., and individual contributors + * as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.undertow.util; + +/** + * Created by Marek Marusic on 7/25/19. + */ +public class UrlDecodeException extends IllegalArgumentException { + + public UrlDecodeException(String message, Throwable cause) { + super(message, cause); + } + +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/util/WorkerUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/version.properties =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/version.properties (revision 0) +++ 3rdParty_sources/undertow/io/undertow/version.properties (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1 @@ +undertow.version=${project.version} \ No newline at end of file Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/WebSocketConnectionCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/WebSocketExtension.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/WebSocketProtocolHandshakeHandler.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/client/WebSocket13ClientHandshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/client/WebSocketClient.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/client/WebSocketClientHandshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/client/WebSocketClientNegotiation.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/AbstractReceiveListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/BinaryOutputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/BufferedBinaryMessage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/BufferedTextMessage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/CloseMessage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/InvalidOpCodeException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/SendChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/StreamSinkFrameChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/StreamSourceFrameChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/UTF8Output.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketCallback.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketFrame.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketFrameCorruptedException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketFramePriority.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketFrameType.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketHandshakeException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketInvalidCloseCodeException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketLogger.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketLogger_$logger.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketLogger_$logger.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketLogger_$logger.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,53 @@ +package io.undertow.websockets.core; + +import java.util.Locale; +import java.io.Serializable; +import javax.annotation.processing.Generated; +import org.jboss.logging.DelegatingBasicLogger; +import org.jboss.logging.BasicLogger; +import java.lang.Throwable; +import io.undertow.websockets.WebSocketExtension.Parameter; +import java.lang.Object; +import org.jboss.logging.Logger; + + +import static org.jboss.logging.Logger.Level.ERROR; +import static org.jboss.logging.Logger.Level.DEBUG; +import static org.jboss.logging.Logger.Level.WARN; + +/** + * Warning this class consists of generated code. + */ +@Generated(value = "org.jboss.logging.processor.generator.model.MessageLoggerImplementor", date = "2024-02-21T04:11:51-0300") +public class WebSocketLogger_$logger extends DelegatingBasicLogger implements WebSocketLogger, BasicLogger, Serializable { + private static final long serialVersionUID = 1L; + private static final String FQCN = WebSocketLogger_$logger.class.getName(); + public WebSocketLogger_$logger(final Logger log) { + super(log); + } + private static final Locale LOCALE = Locale.ROOT; + protected Locale getLoggingLocale() { + return LOCALE; + } + @Override + public final void decodingFrameWithOpCode(final int opCode) { + super.log.logf(FQCN, DEBUG, null, decodingFrameWithOpCode$str(), opCode); + } + protected String decodingFrameWithOpCode$str() { + return "UT025003: Decoding WebSocket Frame with opCode %s"; + } + @Override + public final void unhandledErrorInAnnotatedEndpoint(final Object instance, final Throwable thr) { + super.log.logf(FQCN, ERROR, thr, unhandledErrorInAnnotatedEndpoint$str(), instance); + } + protected String unhandledErrorInAnnotatedEndpoint$str() { + return "UT025007: Unhandled exception for annotated endpoint %s"; + } + @Override + public final void incorrectExtensionParameter(final Parameter param) { + super.log.logf(FQCN, WARN, null, incorrectExtensionParameter$str(), param); + } + protected String incorrectExtensionParameter$str() { + return "UT025008: Incorrect parameter %s for extension"; + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketMessages.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketMessages_$bundle.java =================================================================== diff -u --- 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketMessages_$bundle.java (revision 0) +++ 3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketMessages_$bundle.java (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -0,0 +1,260 @@ +package io.undertow.websockets.core; + +import java.util.Locale; +import java.lang.IllegalStateException; +import java.io.Serializable; +import javax.annotation.processing.Generated; +import java.io.UnsupportedEncodingException; +import io.undertow.websockets.core.WebSocketFrameCorruptedException; +import java.io.IOException; +import java.lang.String; +import java.util.zip.DataFormatException; +import io.undertow.websockets.core.WebSocketInvalidCloseCodeException; +import java.util.Collection; +import io.undertow.websockets.core.WebSocketFrameType; +import io.undertow.websockets.core.WebSocketHandshakeException; +import java.util.Arrays; +import java.lang.IllegalArgumentException; +import java.lang.UnsupportedOperationException; + +/** + * Warning this class consists of generated code. + */ +@Generated(value = "org.jboss.logging.processor.generator.model.MessageBundleImplementor", date = "2024-02-21T04:11:51-0300") +public class WebSocketMessages_$bundle implements WebSocketMessages, Serializable { + private static final long serialVersionUID = 1L; + protected WebSocketMessages_$bundle() {} + public static final WebSocketMessages_$bundle INSTANCE = new WebSocketMessages_$bundle(); + protected Object readResolve() { + return INSTANCE; + } + private static final Locale LOCALE = Locale.ROOT; + protected Locale getLoggingLocale() { + return LOCALE; + } + protected String channelClosed$str() { + return "UT002002: Channel is closed"; + } + @Override + public final IOException channelClosed() { + final IOException result = new IOException(String.format(getLoggingLocale(), channelClosed$str())); + _copyStackTraceMinusOne(result); + return result; + } + private static void _copyStackTraceMinusOne(final Throwable e) { + final StackTraceElement[] st = e.getStackTrace(); + e.setStackTrace(Arrays.copyOfRange(st, 1, st.length)); + } + protected String invalidTextFrameEncoding$str() { + return "UT002003: Text frame contains non UTF-8 data"; + } + @Override + public final UnsupportedEncodingException invalidTextFrameEncoding() { + final UnsupportedEncodingException result = new UnsupportedEncodingException(String.format(getLoggingLocale(), invalidTextFrameEncoding$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String fragmentedControlFrame$str() { + return "UT002005: Fragmented control frame"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException fragmentedControlFrame() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), fragmentedControlFrame$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String toBigControlFrame$str() { + return "UT002006: Control frame with payload length > 125 octets"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException toBigControlFrame() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), toBigControlFrame$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String reservedOpCodeInControlFrame$str() { + return "UT002007: Control frame using reserved opcode = %s"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException reservedOpCodeInControlFrame(final int opCode) { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), reservedOpCodeInControlFrame$str(), opCode)); + _copyStackTraceMinusOne(result); + return result; + } + protected String controlFrameWithPayloadLen1$str() { + return "UT002008: Received close control frame with payload len 1"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException controlFrameWithPayloadLen1() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), controlFrameWithPayloadLen1$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String reservedOpCodeInDataFrame$str() { + return "UT002009: Data frame using reserved opcode = %s"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException reservedOpCodeInDataFrame(final int opCode) { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), reservedOpCodeInDataFrame$str(), opCode)); + _copyStackTraceMinusOne(result); + return result; + } + protected String continuationFrameOutsideFragmented$str() { + return "UT002010: Received continuation data frame outside fragmented message"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException continuationFrameOutsideFragmented() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), continuationFrameOutsideFragmented$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String nonContinuationFrameInsideFragmented$str() { + return "UT002011: Received non-continuation data frame while inside fragmented message"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException nonContinuationFrameInsideFragmented() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), nonContinuationFrameInsideFragmented$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String unsupportedOpCode$str() { + return "UT002013: Cannot decode web socket frame with opcode: %s"; + } + @Override + public final IllegalStateException unsupportedOpCode(final int opCode) { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), unsupportedOpCode$str(), opCode)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unsupportedFrameType$str() { + return "UT002014: WebSocketFrameType %s is not supported by this WebSocketChannel\""; + } + @Override + public final IllegalArgumentException unsupportedFrameType(final io.undertow.websockets.core.WebSocketFrameType type) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), unsupportedFrameType$str(), type)); + _copyStackTraceMinusOne(result); + return result; + } + protected String extensionsNotAllowed$str() { + return "UT002015: Extensions not allowed but received rsv of %s"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException extensionsNotAllowed(final int rsv) { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), extensionsNotAllowed$str(), rsv)); + _copyStackTraceMinusOne(result); + return result; + } + protected String unsupportedProtocol$str() { + return "UT002016: Could not find supported protocol in request list %s. Supported protocols are %s"; + } + @Override + public final io.undertow.websockets.core.WebSocketHandshakeException unsupportedProtocol(final String requestedSubprotocols, final Collection subprotocols) { + final io.undertow.websockets.core.WebSocketHandshakeException result = new io.undertow.websockets.core.WebSocketHandshakeException(String.format(getLoggingLocale(), unsupportedProtocol$str(), requestedSubprotocols, subprotocols)); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidPayloadLengthForPing$str() { + return "UT002019: Invalid payload for PING (payload length must be <= 125, was %s)"; + } + @Override + public final IllegalArgumentException invalidPayloadLengthForPing(final long payloadLength) { + final IllegalArgumentException result = new IllegalArgumentException(String.format(getLoggingLocale(), invalidPayloadLengthForPing$str(), payloadLength)); + _copyStackTraceMinusOne(result); + return result; + } + protected String extensionsNotSupported$str() { + return "UT002023: Extensions not supported"; + } + @Override + public final UnsupportedOperationException extensionsNotSupported() { + final UnsupportedOperationException result = new UnsupportedOperationException(String.format(getLoggingLocale(), extensionsNotSupported$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String invalidCloseFrameStatusCode$str() { + return "UT002026: Invalid close frame status code: %s"; + } + @Override + public final io.undertow.websockets.core.WebSocketInvalidCloseCodeException invalidCloseFrameStatusCode(final int statusCode) { + final io.undertow.websockets.core.WebSocketInvalidCloseCodeException result = new io.undertow.websockets.core.WebSocketInvalidCloseCodeException(String.format(getLoggingLocale(), invalidCloseFrameStatusCode$str(), statusCode)); + _copyStackTraceMinusOne(result); + return result; + } + protected String streamIsBroken$str() { + return "UT002027: Could not send data, as the underlying web socket connection has been broken"; + } + @Override + public final IOException streamIsBroken() { + final IOException result = new IOException(String.format(getLoggingLocale(), streamIsBroken$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String frameNotMasked$str() { + return "UT002034: Web socket frame was not masked"; + } + @Override + public final io.undertow.websockets.core.WebSocketFrameCorruptedException frameNotMasked() { + final io.undertow.websockets.core.WebSocketFrameCorruptedException result = new io.undertow.websockets.core.WebSocketFrameCorruptedException(String.format(getLoggingLocale(), frameNotMasked$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String noWebSocketUpgradeHeader$str() { + return "UT002035: The response did not contain an 'Upgrade: websocket' header"; + } + @Override + public final IOException noWebSocketUpgradeHeader() { + final IOException result = new IOException(String.format(getLoggingLocale(), noWebSocketUpgradeHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String noWebSocketConnectionHeader$str() { + return "UT002036: The response did not contain a 'Connection: upgrade' header"; + } + @Override + public final IOException noWebSocketConnectionHeader() { + final IOException result = new IOException(String.format(getLoggingLocale(), noWebSocketConnectionHeader$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String webSocketAcceptKeyMismatch$str() { + return "UT002037: Sec-WebSocket-Accept mismatch, expecting %s, received %s"; + } + @Override + public final IOException webSocketAcceptKeyMismatch(final String dKey, final String acceptKey) { + final IOException result = new IOException(String.format(getLoggingLocale(), webSocketAcceptKeyMismatch$str(), dKey, acceptKey)); + _copyStackTraceMinusOne(result); + return result; + } + protected String messageToBig$str() { + return "UT002040: Message exceeded max message size of %s"; + } + @Override + public final String messageToBig(final long maxMessageSize) { + return String.format(getLoggingLocale(), messageToBig$str(), maxMessageSize); + } + protected String badCompressedPayload$str() { + return "UT002044: Compressed message payload is corrupted"; + } + @Override + public final IOException badCompressedPayload(final DataFormatException cause) { + final IOException result = new IOException(String.format(getLoggingLocale(), badCompressedPayload$str()), cause); + _copyStackTraceMinusOne(result); + return result; + } + protected String unableToSendOnNewChannel$str() { + return "UT002045: Unable to send on newly created channel!"; + } + @Override + public final IllegalStateException unableToSendOnNewChannel() { + final IllegalStateException result = new IllegalStateException(String.format(getLoggingLocale(), unableToSendOnNewChannel$str())); + _copyStackTraceMinusOne(result); + return result; + } + protected String messageCloseWebSocket$str() { + return "UT002046: Closing WebSocket, peer went away."; + } + @Override + public final String messageCloseWebSocket() { + return String.format(getLoggingLocale(), messageCloseWebSocket$str()); + } +} Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSocketVersion.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/WebSockets.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/function/ChannelFunction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/function/ChannelFunctionFileChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/function/ChannelFunctionReadableByteChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/function/ChannelFunctionStreamSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/function/ChannelFunctionWritableByteChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/Handshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/Base64.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/Hybi07Handshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/Masker.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/UTF8Checker.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07BinaryFrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07BinaryFrameSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07Channel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07CloseFrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07CloseFrameSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07FrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07PingFrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07PingFrameSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07PongFrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07PongFrameSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07TextFrameSinkChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version07/WebSocket07TextFrameSourceChannel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version08/Hybi08Handshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version08/WebSocket08Channel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version13/Hybi13Handshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/core/protocol/version13/WebSocket13Channel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/CompositeExtensionFunction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/ExtensionFunction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/ExtensionHandshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/NoopExtensionFunction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/PerMessageDeflateFunction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/extensions/PerMessageDeflateHandshake.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/spi/AsyncWebSocketHttpServerExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/spi/BlockingWebSocketHttpServerExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0c9c83107d623392869f43619926ea6d8ec5beab refers to a dead (removed) revision in file `3rdParty_sources/undertow/io/undertow/websockets/spi/WebSocketHttpExchange.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/undertow/org/wildfly/extension/undertow/deployment/UndertowDeploymentService.java =================================================================== diff -u -re704ad812feb0fa447e5bd63332f753ac1a94b70 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- 3rdParty_sources/undertow/org/wildfly/extension/undertow/deployment/UndertowDeploymentService.java (.../UndertowDeploymentService.java) (revision e704ad812feb0fa447e5bd63332f753ac1a94b70) +++ 3rdParty_sources/undertow/org/wildfly/extension/undertow/deployment/UndertowDeploymentService.java (.../UndertowDeploymentService.java) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -89,10 +89,14 @@ HttpHandler handler = deploymentManager.start(); Deployment deployment = deploymentManager.getDeployment(); host.get().registerDeployment(deployment, handler); - } catch (Throwable e ) { - deploymentManager.undeploy(); - container.get().getServletContainer().removeDeployment(deploymentInfo); - throw e; + } catch (Throwable originalException) { + try { + deploymentManager.undeploy(); + container.get().getServletContainer().removeDeployment(deploymentInfo); + } catch(Throwable e) { + originalException.addSuppressed(e); + } + throw originalException; } finally { StartupContext.setInjectionContainer(null); } Index: lams_build/liblist.txt =================================================================== diff -u -r49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- lams_build/liblist.txt (.../liblist.txt) (revision 49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46) +++ lams_build/liblist.txt (.../liblist.txt) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -33,8 +33,8 @@ googleauth googleauth-1.1.1.jar 1.1.1 Public Domain Enrico M. Crisostomo Java server library that implements the Time-based One-time Password (TOTP) algorithm -hibernate hibernate-core-6.4.4.Final.jar 5.3.6 LGPL Hibernate ORM library - hibernate-envers-5.3.6.Final.jar +hibernate hibernate-core-6.4.4.Final.jar 6.4.4 LGPL Hibernate ORM library + hibernate-envers-6.4.4.Final.jar jakarta-commons commons-codec-1.15.jar 1.15 Apache Software License 2.0 The Apache Software Foundation provides implementations of common encoders and decoders commons-collections4-4.4.jar 4.4 Apache Software License 2.0 The Apache Software Foundation adds many powerful data structures that accelerate development of Java applications Index: lams_central/.classpath =================================================================== diff -u -r49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- lams_central/.classpath (.../.classpath) (revision 49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46) +++ lams_central/.classpath (.../.classpath) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -25,8 +25,8 @@ - - + + Index: lams_central/lams_central.eml =================================================================== diff -u -r49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- lams_central/lams_central.eml (.../lams_central.eml) (revision 49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46) +++ lams_central/lams_central.eml (.../lams_central.eml) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -13,11 +13,11 @@ - + - + Index: lams_common/.classpath =================================================================== diff -u -r49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- lams_common/.classpath (.../.classpath) (revision 49e695ce7f0f8acb27e316eb8ad0fc3d4f6d5d46) +++ lams_common/.classpath (.../.classpath) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -36,8 +36,8 @@ - - + + Index: lams_common/lams_common.eml =================================================================== diff -u -r5661c79b661c18221c0eb5e32fe7ec54110e5a65 -rea477c1251395464d8d74c250bcdfc64161fc8d6 --- lams_common/lams_common.eml (.../lams_common.eml) (revision 5661c79b661c18221c0eb5e32fe7ec54110e5a65) +++ lams_common/lams_common.eml (.../lams_common.eml) (revision ea477c1251395464d8d74c250bcdfc64161fc8d6) @@ -20,11 +20,11 @@ - + - +