使用Grizzly NIO框架好久了,版本一次次更新,但是在官网上愣是找不到Release Notes,原来只有在java.net的jira才有,好隐蔽。现在发布的最新版本是2.3.19。下面是我摘的几个版本的Release Notes,以后有新版本再更新。
Grizzly 2.3.19 Release Notes
Bug
- [GRIZZLY-1710] - Welcome page (index.html) not found if classloader is an URLClassLoader (pointing to a different JAR)
- [GRIZZLY-1733] - Cannot setup session timeout
- [GRIZZLY-1734] - HeapBuffer heap array position
- [GRIZZLY-1735] - FilterChainBuilder logic (updating an existing FilterChain) is wrong and it has to be fixed
- [GRIZZLY-1741] - WebSocketApplication further handshake validation
- [GRIZZLY-1742] - InputBuffer.reset() might reset to a incorrect Buffer position
- [GRIZZLY-1743] - sun.misc.* is not always visible in OSGi env
- [GRIZZLY-1746] - ProtocolHandler does not provide ClosingFrame
Improvement
- [GRIZZLY-1737] - Support SNI TLS extension by default without requiring SNIFilter and associated module
- [GRIZZLY-1739] - Extend HandshakeListener to notify about failures
Grizzly 2.3.18 Release Notes
Bug
- [GRIZZLY-1716] - While parsing multiparts, NPEs are occurred
- [GRIZZLY-1718] - Standard Error Pages of grizzly-http-server allow cross site scripting
- [GRIZZLY-1719] - Attribute get with NullaryFunction initializer is not thread safe
- [GRIZZLY-1727] - graceful remote initiated SSL connection close throws exception
Improvement
- [GRIZZLY-1717] - Allow configure server socket and socket properties for each ServerSocket
- [GRIZZLY-1723] - Create Connection.getMemoryManager() shortcut to Connection.getTransport().getMemoryManager()
- [GRIZZLY-1724] - Extend Closeable interface
- [GRIZZLY-1725] - Associated Closeable with FilterChain processing
- [GRIZZLY-1728] - configurable content-type in response on error
- [GRIZZLY-1730] - Introduce system property to limit size of send buffer
New Feature
- [GRIZZLY-1720] - Support HTTP request headers -> scheme and remote-user mapping
Grizzly 2.3.12 Release Notes
Bug
- [GRIZZLY-1654] - HttpServletRequest.changeSessionId doesn't register new session id
- [GRIZZLY-1663] - NPE when registering a servlet in grizzly-httpservice
- [GRIZZLY-1666] - HTTP request is not fully consumed for persistent connection
- [GRIZZLY-1670] - No event is called on HttpHandler's WriteHandler, when Connection is unexpectedly closed
- [GRIZZLY-1673] - Grizzly Graceful Shutdown throws InterruptedException
- [GRIZZLY-1679] - Connection Abort on missing Content-Length header
- [GRIZZLY-1680] - Grizzly 2.3.11 + Atmosphere 2.1.3: getServletPath() returns null
Improvement
- [GRIZZLY-1650] - Glassfish AJP connector has fixed max packet size (should be configurable)
- [GRIZZLY-1652] - Make possible to disable graceful shutdown
- [GRIZZLY-1653] - ContentType.getByteArray() generates unnecessary garbage.
- [GRIZZLY-1655] - RoundRobinConnectionDistributor can be optimized to not use AtomicInteger
- [GRIZZLY-1657] - Expose access log configuration via NetworkListener.
- [GRIZZLY-1662] - Check that kernel ThreadPoolConfig size is big enough to run configured number of SelectorRunners
- [GRIZZLY-1664] - Add Eclipse project files to .gitignore
- [GRIZZLY-1665] - update SPDY version to 3.1
- [GRIZZLY-1677] - Improve Grizzly TaskQueue to properly shutdown tasks, when connection is getting closed asynchronously
- [GRIZZLY-1678] - Generate only one HttpContext for client-side HTTP request/response processing
New Feature
- [GRIZZLY-331] - Add access log support
- [GRIZZLY-1481] - Make possible to set HttpHandler's context-path and url-patter separately during registration
- [GRIZZLY-1658] - Implement graceful shutdown feature for Connections
- [GRIZZLY-1661] - Support SNI (Server Name Indication) TLS extension
Grizzly 2.3.6 Release Notes
Bug
- [GRIZZLY-1563] - Http write timeout : chunked encoding should not send last chunk
- [GRIZZLY-1571] - Setting compressible mime types leads to NullPointerException
- [GRIZZLY-1572] - NIOTransportTest fails: "java.net.BindException: Address already in use"
- [GRIZZLY-1573] - Endless loop at TCPNIOTransport.read when reading -1 bytes
- [GRIZZLY-1574] - Fix object Builders to avoid unexpected object modification
- [GRIZZLY-1575] - ConnectorHandler/SocketConnectorHandler API changes broke GF sso_failover test
- [GRIZZLY-1579] - Bug in masked LinkedTransferQueue class
- [GRIZZLY-1583] - createSimpleHttpServer does not document it accepts null
- [GRIZZLY-1584] - Error page sometimes is sent with content-length == 0
- [GRIZZLY-1586] - SyncThreadPool may stuck due to a racing issue
- [GRIZZLY-1587] - ConnectionPool's keep-alive/reconnect management thread is not getting stopped
Improvement
- [GRIZZLY-1568] - Require more identifiers other than Name of NetworkListener for GrizzlyService.removeNetworkProxy.
- [GRIZZLY-1578] - Propagate InputStream mark/reset support to the Grizzly Servlet layer
New Feature
Grizzly 2.3 Release Notes
Bug
- [GRIZZLY-416] - (Comet) SSL re-negotation with Grizzly
- [GRIZZLY-548] - It is no longer possible to deregister keys from the main selector
- [GRIZZLY-738] - Fix the pom dependency to Servlet 3.1
- [GRIZZLY-1309] - "Provocative" write may unexpectedly block entire async writer processing
- [GRIZZLY-1315] - NumberFormatException thrown when http status line is parsed that contains no reason phrase.
- [GRIZZLY-1316] - See many IllegalStateException("Non Suspended") under load
- [GRIZZLY-1317] - HTTP CONNECT method doesn't work properly
- [GRIZZLY-1318] - Duplicate default case in DispatchedHttpServletRequest
- [GRIZZLY-1322] - request.getLocalAddr() returns null using JK listener, Apache, and mod_ajp_proxy
- [GRIZZLY-1323] - GenericGrizzlyListener.stop() throws NPE
- [GRIZZLY-1327] - HttpServletRequest.getPathInfo is null for servlets registered via HttpServiceService
- [GRIZZLY-1333] - NetworkAddressValidator will fail when passed property substitution values (i.e., ${SOMETHING}).
- [GRIZZLY-1334] - org.glassfish.grizzly.http.server.Response#setCharacterEncoding does not work properly
- [GRIZZLY-1335] - org.glassfish.grizzly.http.server.Response#reset does not work properly
- [GRIZZLY-1338] - If "detect close connection" mode is switched on - HTTP pipeling has to be explicitly disallowed
- [GRIZZLY-1341] - hk2 dependencies should be marked with <scope>provided</scope>
- [GRIZZLY-1343] - Session identification depends on web client
- [GRIZZLY-1346] - Thread safe method for setting the processor on a new server connection
- [GRIZZLY-1347] - GF.trunk does not let the http trace request enabled
- [GRIZZLY-1348] - Don't resume HTTP response on error (connection close, timeout expiration)
- [GRIZZLY-1350] - dead Cycle when error Occur in StaticHttpHandler
- [GRIZZLY-1354] - [PERF] Improve handling of header encoding
- [GRIZZLY-1355] - WebSocket extension handling needs to be aware of extension parameters
- [GRIZZLY-1356] - negativeFileTransferAPITest fails on Windows 7
- [GRIZZLY-1363] - Make TCP and UDP Transport.start/stop/suspend/resume check the current state before running the actual logic
- [GRIZZLY-1370] - get/setMaxInactiveInterval must convert between seconds and milliseconds to prevent early session expiration
- [GRIZZLY-1377] - org.glassfish.grizzly.http.core.URLDecoder doesn't decode char[], String properly if characters are encoded w/ more than 1 byte (Unicode)
- [GRIZZLY-1379] - Upgraded HTTP connection response uses version HTTP/0.9 by default
- [GRIZZLY-1380] - Http keep-alive is improperly set for HTTP requests/response, which don't have neither Content-Length nor TransferEncoding set.
- [GRIZZLY-1381] - Content-Length, Transfer-Encoding, Content-Encoding headers have to be ignored by Upgraded HTTP connection
- [GRIZZLY-1382] - Grizzly doesn't decode UTF-8 encoded query parameters properly
- [GRIZZLY-1386] - OSGiServletHandler.FilterChainImpl isn't threadsafe
- [GRIZZLY-1387] - [Perf] Grizzly 2 SSL performance regression when compared to 1.9.x
- [GRIZZLY-1396] - SSL renegotiation appears broken in RC1. Servlet TCK test that validates this functionality now fails.
- [GRIZZLY-1398] - write-timeout-millis is not enabled
- [GRIZZLY-1399] - NPE when enabling FINE logging for org.glassfish.grizzly.config
- [GRIZZLY-1404] - Servlet Mapping Issue when integrating Jersey and Spring
- [GRIZZLY-1408] - NIOTransport$JmxConnectionProbe.on{Bind,Accept,Connect}Event not called
- [GRIZZLY-1409] - Change logging level for "broken pipe" or "connection reset by peer" IOException logging
- [GRIZZLY-1417] - HttpHeader.quotedCharsetValue isn't reset properly leading to responses with content-types like application/octet-stream;charset=UTF-8
- [GRIZZLY-1418] - Consecutive calls to static data results in loss of Content-Type data on Response Headers
- [GRIZZLY-1421] - Fix for GRIZZLY-1404 introduced regression in GF web services when using our servlet runtime
- [GRIZZLY-1422] - Perf regression introduced in 2.3-beta9
- [GRIZZLY-1434] - Default buffer byte-order is not restored when a buffer is disposed.
- [GRIZZLY-1435] - SyncThreadPool, unlike FixedThreadPool, does not initial the core threads when starting the pool
- [GRIZZLY-1437] - grizzly-websocket-chat application.js' websocket url is hardcoded for localhost.
- [GRIZZLY-1438] - Grizzly does not parse form parameters as part of a POST body when Transfer-Encoding is chunked.
- [GRIZZLY-1439] - Spdy OutputSink may "forget" to write a buffer
- [GRIZZLY-1442] - HTTP populateCertificateAttribute has to read off HTTP body before initiating SSL re-handshake
- [GRIZZLY-1445] - should throw a meaningful exception instead of NullPointerException when SSL handshake fails due to a certificate setup issue
- [GRIZZLY-1446] - Http OutputBuffer sends response in chunks even if chunking is disabled no content-length defined
- [GRIZZLY-1452] - missing API CharChunk#endsWith
- [GRIZZLY-1453] - A Websocket application can prevent other Websocket applications from receiving messages destined for them
- [GRIZZLY-1455] - Changes from http://java.net/jira/browse/GRIZZLY-1404 break RequestPathElements as specified in Servlet Spec
- [GRIZZLY-1463] - html encoding in response reason phase
- [GRIZZLY-1470] - CompressionEncodingFilter ignores minSize setting
- [GRIZZLY-1474] - Grizzly doesn't conver qValues properly
- [GRIZZLY-1479] - Provide MaxSavePostSize configuration for HTTP
- [GRIZZLY-1489] - IllegalStateException occurs if different date format(RFC850) is used
- [GRIZZLY-1501] - FilterChain documentation needs some work
Improvement
- [GRIZZLY-1170] - Improve and rename PushBackHandler interface
- [GRIZZLY-1314] - CompositeBuffer.dispose(): we need a possibility to specify an order in which internal Buffers will be disposed
- [GRIZZLY-1324] - Optimize HttpHandler mapping in case when only one HttpHandler is registered
- [GRIZZLY-1368] - HttpServletResponse: encodeURL, encodeRedirectURL are not implemented yet
- [GRIZZLY-1369] - It's not possible to set incompleteChunk w/ FilterChain InvokeAction
- [GRIZZLY-1414] - Add is/setDaemon(...) setting to ThreadPoolConfig
- [GRIZZLY-1433] - Allow specification of the classloader that will be used by Threads within a specific thread pool
- [GRIZZLY-1443] - SSLBaseFilter has to support automatic re-handshake requests
- [GRIZZLY-1462] - Introduce Broadcaster API
New Feature
- [GRIZZLY-1337] - Implement Aggregator AddOn to aggregate HTTP packet input data before passing it to a next Filter
- [GRIZZLY-1344] - Make possible to bind TCPNIOTransport to inherited ServerSocketChannel
- [GRIZZLY-1371] - SPDY protocol support
- [GRIZZLY-1388] - Make SSL handshake blocking/non-blocking mode configurable
- [GRIZZLY-1389] - Make RoundRobinChannelDistributor dedicated/shared modes configurable
- [GRIZZLY-1410] - Close connection when ProtocolFinder list or PUFilter chain exhausted for the transport
- [GRIZZLY-1411] - Need to support replace HttpRequest
- [GRIZZLY-1420] - Need a way to configure the timeout for nonblocking IO
- [GRIZZLY-1449] - Implement HttpServer default query character encoding
- [GRIZZLY-1451] - create a bom-pom to facilitate consumption of grizzly artifacts
Task
- [GRIZZLY-1310] - Investigate HTTP performance regression
- [GRIZZLY-1326] - NetworkListener.transactionTimeout is not implemented
- [GRIZZLY-1349] - Upgrade gmbal dependency
- [GRIZZLY-1365] - Optimize SyncThreadPool implementation
- [GRIZZLY-1432] - Port spdy from master to 2.3.x.
- [GRIZZLY-1467] - Make sure Grizzly http-servlet module works fine w/ Servlet 3.0 API and JDK6
- [GRIZZLY-1480] - Create HTTP request prioritization sample
Sub-task
- [GRIZZLY-1401] - Implement "changeSessionId" feature
- [GRIZZLY-1402] - Implement HttpUpgradeHandler
- [GRIZZLY-1405] - Make sure we throw IllegalStateException in all cases we try to use blocking I/O in non-blocking mode and vise versa
- [GRIZZLY-1425] - Transport byte-buffer-type
- [GRIZZLY-1427] - Transport enable-snoop
- [GRIZZLY-1429] - Transport selection-key-handler
- [GRIZZLY-1441] - LifeCycleHandler is not getting passed downstream when writing HttpContent
- [GRIZZLY-1444] - Allow spdy within grizzly-config to operate in PLAIN mode as well as NPN.
- [GRIZZLY-1448] - Port NIOOutputSinksTest and fix possible issues
- [GRIZZLY-1457] - Implement rst_stream processing.
- [GRIZZLY-1458] - Add HK2 Services for SpdyAddon in plain and npn modes.
- [GRIZZLY-1459] - Add command to enable spdy within GlassFish.
- [GRIZZLY-1460] - Investigate why Chrome fails to work with our Spdy implementation (using either our or Jetty's non impl).
- [GRIZZLY-1464] - Respect the max concurrent streams setting
- [GRIZZLY-1466] - Implement Headers frame support.
- [GRIZZLY-1468] - Make possible to set the max acceptable frame size
- [GRIZZLY-1472] - Double-check all the Glassfish SPDY configuration properties are properly passed
- [GRIZZLY-1473] - Implement PingFrame serialization
- [GRIZZLY-1475] - Fix the SynStream SynReply serialization when we have duplicated headers
- [GRIZZLY-1476] - Better synchronize multiplexed streams when they use deflater (to send SynStream, SynReply)
- [GRIZZLY-1478] - Expose SpdyStream object via Http attribute
Grizzly 2.2 Release Notes
Bug
- [GRIZZLY-1070] - Streams returned by Request and Response should be blocking by default
- [GRIZZLY-1071] - WebSocketClient will not get notified when connection closed
- [GRIZZLY-1072] - Potential StackOverflow error, when using notifyCanWrite->WriteHandler.onWritePossible->notifyCanWrite..... chain
- [GRIZZLY-1073] - Improper Future recycling may cause sporadic I/O operation failures
- [GRIZZLY-1074] - Grizzly, in some cases, incorrectly parses form based query parameters
- [GRIZZLY-1075] - HeapMemoryManager doesn't notify MemoryProbe, when allocates new byte[]
- [GRIZZLY-1077] - BuffersBuffer.get(ByteBuffer) incorrectly transfers data
- [GRIZZLY-1079] - SSLFilter implementation doesn't support parallel writes
- [GRIZZLY-1080] - NullPointerException in filterChainContext.write after ctx.getSuspendingAction() then using separate thread call ctx.write with PUFilter
- [GRIZZLY-1081] - Custom threadpool is ignored when set in AsyncHttpClientConfigBuilder
- [GRIZZLY-1082] - fix websockets draft76 handshake
- [GRIZZLY-1085] - HeapBuffer.order() always returns ByteOrder.BIG_ENDIAN
- [GRIZZLY-1089] - Incorrect handling of unknown Sec-WebSocket-Version
- [GRIZZLY-1095] - Server-side websocket code incorrect fails a WS client handshake that doesn't include an Origin header
- [GRIZZLY-1098] - WS failure for autobahn test case 2.5
- [GRIZZLY-1099] - WS autobahn test cases 3.1-3.6 fail.
- [GRIZZLY-1100] - Autobahn WS test cases 5.1, 5.2, and 5.6 - 5.20 fail
- [GRIZZLY-1101] - Native ByteBuffers leaked from TCPNIOTransport
- [GRIZZLY-1102] - IdleTimeoutFilter: -1 value is not working
- [GRIZZLY-1111] - IllegalArgumentException while encoding data using SSLEncoderTransformer.wrapAll()
- [GRIZZLY-1113] - If a response is resumed or cancelled mid-request while the client is still sending data, the data accumulated after the cancel/resume trigger the handler again.
- [GRIZZLY-1116] - ClassCastException when running SSLTest with ByteBufferMemoryManager as the MM specified on the Transport.
- [GRIZZLY-1132] - Using grizzly-websockets for client use only pulls in dependencies on the http-server module.
- [GRIZZLY-1137] - Inconsistent context might be processed by FilterChain after returned SuspendStopAction
- [GRIZZLY-1146] - request.getHeader does not return the trailer on chunked POST requests with trailers
- [GRIZZLY-1147] - Grizzly should enable Connection OP_READ interest only when ReadHandler is registered
- [GRIZZLY-1155] - Impossible to customize 100-Continue processing logic, when HttpHandlerChain is used
- [GRIZZLY-1156] - TimeoutException on TcpNIOTransport.stop
- [GRIZZLY-1158] - UnsupportedOperationException: org.glassfish.grizzly.threadpool.SyncThreadPool.awaitTermination
Improvement
- [GRIZZLY-519] - add JMX support
- [GRIZZLY-1056] - Allow to initialize async read/write outside HttpHandler.service(...) method
- [GRIZZLY-1078] - Improve AsyncWriteQueue performance
- [GRIZZLY-1083] - WS idle connection timeout, as far as Grizzly config is currently designed is the same as HTTP idle connection timeout. The two timeouts should be independent.
- [GRIZZLY-1138] - Separate DEFAULT_CHARSET and DEFAULT_HTTP_CHARSET
- [GRIZZLY-1139] - Make possible for org.glassfish.grizzly.utils.Charsets to preload all the available charsets
- [GRIZZLY-1142] - Pending bytes for async write queue should not be unlimited by default. It should be closer to the socket output buffer size.
- [GRIZZLY-1143] - Improve QueueMonitor API
New Feature
- [GRIZZLY-1046] - Implement FileChannel.transferTo() support for StaticHttpHandler
- [GRIZZLY-1055] - Make possible to distinguish if Connection was closed locally or by peer
- [GRIZZLY-1129] - Supporting thrift server and client modules
Task
- [GRIZZLY-969] - [documentation] Create chapter content for grizzly-comet
- [GRIZZLY-1087] - Reduce findbugs count for 2.x by 30% (glassfish requirement)
- [GRIZZLY-1150] - Bring 1.9/2.1/2.2 WS implementations inline with RFC 6455
- [GRIZZLY-1152] - Make possible to set async write queue per each Connection individually
- [GRIZZLY-1157] - Deprecate FilterChainContext.getSuspendingStopAction()
- [GRIZZLY-1159] - Refactor Grizzly 2.1.x
Grizzly 2.1 Release Notes
Bug
- [GRIZZLY-242] - Add support for Request/NamedDispatcher
- [GRIZZLY-937] - TCPNIOTransport forces thread pool to contain at least one worker thread even when the SameThreadStrategy is being used
- [GRIZZLY-974] - SocketBinder.bind() doesn't handle failures properly
- [GRIZZLY-977] - Async Read/Write Queue: thread racing problems
- [GRIZZLY-978] - Port LZMA support from Grizzly 1.9.x
- [GRIZZLY-983] - CompletionHandler may not be invoked if there's an SSL handshake error.
- [GRIZZLY-984] - IdleTimeoutFilter uses finalize() to shutdown the DelayedExecutor responsible for detecting and closing idle connections
- [GRIZZLY-985] - When processing response to a HEAD request that includes the chunked transfer-encoding header, response processing halts waiting for more data
- [GRIZZLY-988] - possible file descriptor leak on ConnectorHandler.connect(...)
- [GRIZZLY-989] - ConnectorHandler.connect() is not predictable, when called during transport start/stop
- [GRIZZLY-991] - ReadHandler not returning error on client disconnect
- [GRIZZLY-993] - BufferOverflowException thrown when using ByteBufferManager vs HeapBufferManager
- [GRIZZLY-994] - If one sets a custom MemoryManager on a specific transport instance, ClassCastExceptions may be thrown
- [GRIZZLY-996] - content-length header should be processed as long
- [GRIZZLY-998] - Incorrect handling of Expect: 100-continue
- [GRIZZLY-999] - Faban benchmark is not using keep alive when benchmarking character echos with the ByteBufferManager
- [GRIZZLY-1000] - Requesting HEAD should not expect content
Improvement
New Feature
Task
- [GRIZZLY-945] - Implement native AJP support
- [GRIZZLY-947] - Update Grizzly 1.9 Shoal integration to support 2.0
- [GRIZZLY-992] - [documentation] Add documentation for monitoring.
Grizzly 2.0.0 Release Notes
Bug
- [GRIZZLY-131] - Repackage com.sun.grizzly to org.glassfish.grizzly
- [GRIZZLY-349] - OutOfMemory during org.glassfish.grizzly.ByteBufferStreamsTest Unit test execution
- [GRIZZLY-625] - OOM under load
- [GRIZZLY-654] - Grizzly 2.0 M3: java.lang.StackOverflowError in SSL handshake, when using expired client certificate
- [GRIZZLY-655] - Grizzly 2.0 M3 infinite loop hang in SSL handshake
- [GRIZZLY-673] - DefaultConditionListener.java's notificationObject can be improved with Future and completion handler
- [GRIZZLY-737] - com.sun.grizzly.http.servlet.HttpServletRequestImpl.removeAttribute() ClassCastException
- [GRIZZLY-740] - API for connection hand-off
- [GRIZZLY-762] - When is TemporaySelectorReader used to handle I/0 mode( blocking / async) read operation
- [GRIZZLY-796] - TCPNIOConnection.getPeerAddress() and TCPNIOConnection.getLocalAddress always return null right after they are connected.
- [GRIZZLY-834] - Grizzly 2.0 M3 conflict with GlasshFish v3 embedded
- [GRIZZLY-901] - SSLFilter: possible thread racing when running pending writes
- [GRIZZLY-913] - It's not possible to add several docRoots
- [GRIZZLY-917] - Bug in BufferChunk.toChars(...) conversion
- [GRIZZLY-918] - HttpServiceChain mapping 2.0 != 1.9
- [GRIZZLY-919] - Make Request Notes to be based on Grizzly attributes
- [GRIZZLY-920] - add afterService support for Http service processing
Improvement
- [GRIZZLY-15] - ConnectorHandlerPool and its implementor - names need correction
- [GRIZZLY-16] - ConnectorHandlerPool and its implementor - names need correction
- [GRIZZLY-84] - Need leak-free bytebuffer management in Grizzly
- [GRIZZLY-922] - Provide mechanism for HttpRequestProcessor implementations to obtain the Mapper base path which processing requests.
- [GRIZZLY-923] - Consider splitting out static resource processing from HttpRequestProcessor implementation.
New Feature
Task
- [GRIZZLY-931] - [documentation-core framwork] Create chapter content for filters and filterchain
- [GRIZZLY-933] - [documentation-core framework] Create chapter content for grizzly 2.0 best practices
- [GRIZZLY-934] - [documentation-coreframework] Create chapter content for client/server/other examples
- [GRIZZLY-942] - Implement Comet support for 2.0
- [GRIZZLY-972] - Eliminate all javadoc warnings.