httpcomponents-core.git
7 weeks agoHttpCore 5.0-beta5 release 5.0-beta5 5.0-beta5-RC2
Oleg Kalnichevski [Thu, 18 Oct 2018 16:55:57 +0000 (18:55 +0200)] 
HttpCore 5.0-beta5 release

7 weeks agoUpdated release notes for HttpCore 5.0-beta5 release
Oleg Kalnichevski [Thu, 18 Oct 2018 16:48:39 +0000 (18:48 +0200)] 
Updated release notes for HttpCore 5.0-beta5 release

7 weeks agoRegression: fixed incorrect default select interval for i/o reactors
Oleg Kalnichevski [Thu, 18 Oct 2018 11:52:59 +0000 (13:52 +0200)] 
Regression: fixed incorrect default select interval for i/o reactors

7 weeks agoAdded javadoc and project reports plugins to Reactive Streams POM
Oleg Kalnichevski [Thu, 18 Oct 2018 07:59:35 +0000 (09:59 +0200)] 
Added javadoc and project reports plugins to Reactive Streams POM

7 weeks agoDefine a timeout exception and deadline more precisely.
Gary Gregory [Mon, 15 Oct 2018 01:56:28 +0000 (19:56 -0600)] 
Define a timeout exception and deadline more precisely.

Closes PR #90

7 weeks agoCreate a subclass of java.util.concurrent.TimeoutException called TimeoutValueExcepti...
Gary Gregory [Fri, 12 Oct 2018 16:26:14 +0000 (10:26 -0600)] 
Create a subclass of java.util.concurrent.TimeoutException called TimeoutValueException to precisely define a timeout exception.

7 weeks agoCorrected scope of optional dependencies in Reactive Streams module
Oleg Kalnichevski [Thu, 18 Oct 2018 07:21:16 +0000 (09:21 +0200)] 
Corrected scope of optional dependencies in Reactive Streams module

7 weeks agoUpgraded HttpCore version to 5.0-beta5-SNAPSHOT
Oleg Kalnichevski [Thu, 18 Oct 2018 07:18:40 +0000 (09:18 +0200)] 
Upgraded HttpCore version to 5.0-beta5-SNAPSHOT

7 weeks agoHttpCore 5.0-beta4 release 5.0-beta4 5.0-beta4-RC1
Oleg Kalnichevski [Mon, 15 Oct 2018 09:03:51 +0000 (11:03 +0200)] 
HttpCore 5.0-beta4 release

8 weeks agoClarified API contract of AbstractBinDataConsumer
Oleg Kalnichevski [Sun, 14 Oct 2018 10:53:34 +0000 (12:53 +0200)] 
Clarified API contract of AbstractBinDataConsumer

8 weeks agoCorrected input stream window capacity update calculation by HTTP/2 stream multiplexer
Oleg Kalnichevski [Sat, 13 Oct 2018 14:32:13 +0000 (16:32 +0200)] 
Corrected input stream window capacity update calculation by HTTP/2 stream multiplexer

8 weeks agoClarified API contract of AbstractCharDataConsumer
Oleg Kalnichevski [Sat, 13 Oct 2018 12:04:40 +0000 (14:04 +0200)] 
Clarified API contract of AbstractCharDataConsumer

8 weeks agoFix typo in Javadoc.
Gary Gregory [Fri, 12 Oct 2018 21:43:56 +0000 (15:43 -0600)] 
Fix typo in Javadoc.

8 weeks agoUpdate tests from commons-cli 1.2 to 1.4.
Gary Gregory [Fri, 12 Oct 2018 20:57:27 +0000 (14:57 -0600)] 
Update tests from commons-cli 1.2 to 1.4.

8 weeks agoUpdate build from maven-surefire-plugin 2.22.0 to 2.22.1.
Gary Gregory [Fri, 12 Oct 2018 20:45:29 +0000 (14:45 -0600)] 
Update build from maven-surefire-plugin 2.22.0 to 2.22.1.

8 weeks agoUpdate tests from Mockito 2.21.0 to 2.23.0.
Gary Gregory [Fri, 12 Oct 2018 20:34:19 +0000 (14:34 -0600)] 
Update tests from Mockito 2.21.0 to 2.23.0.

8 weeks agoInternal refactoring; leaving int vs. long methods the same. Better
Gary Gregory [Fri, 12 Oct 2018 17:47:58 +0000 (11:47 -0600)] 
Internal refactoring; leaving int vs. long methods the same. Better
exception messages to take out guess work as to what is wrong with an
argument by showing it in the message where appropriate.

8 weeks agoFix typo in exception message.
Gary Gregory [Fri, 12 Oct 2018 16:09:38 +0000 (10:09 -0600)] 
Fix typo in exception message.

8 weeks agoUpdated release notes for HttpCore 5.0-beta4 release
Oleg Kalnichevski [Thu, 11 Oct 2018 14:25:11 +0000 (16:25 +0200)] 
Updated release notes for HttpCore 5.0-beta4 release

8 weeks agoRemoved [oraclejdk9] from Travis build matrix
Oleg Kalnichevski [Mon, 8 Oct 2018 08:14:51 +0000 (10:14 +0200)] 
Removed [oraclejdk9] from Travis build matrix

8 weeks agoadd [openjdk11] to Travis build matrix
Sean Sullivan [Sun, 7 Oct 2018 17:57:17 +0000 (10:57 -0700)] 
add [openjdk11] to Travis build matrix

8 weeks agoBug fix: non-blocking SSL session incorrectly stops decrypting incoming data if unwra...
Oleg Kalnichevski [Fri, 12 Oct 2018 10:06:11 +0000 (12:06 +0200)] 
Bug fix: non-blocking SSL session incorrectly stops decrypting incoming data if unwrap operation results in NOT_HANDSHAKING status

8 weeks agoUse fixed locale for number formatters
Oleg Kalnichevski [Fri, 12 Oct 2018 08:47:45 +0000 (10:47 +0200)] 
Use fixed locale for number formatters

8 weeks agoFixed Java 11 javadoc error
Oleg Kalnichevski [Thu, 11 Oct 2018 09:20:18 +0000 (11:20 +0200)] 
Fixed Java 11 javadoc error

8 weeks agoHTTPCORE-559: Allow default http client connection to read simple streamed responses
David Maplesden [Thu, 11 Oct 2018 01:11:39 +0000 (14:11 +1300)] 
HTTPCORE-559: Allow default http client connection to read simple streamed responses

As per spec these responses are terminated by the end of stream.

8 weeks agoUse longer future timeout in shared buffer unit tests
Oleg Kalnichevski [Wed, 10 Oct 2018 20:37:59 +0000 (22:37 +0200)] 
Use longer future timeout in shared buffer unit tests

8 weeks agoFixed javadoc errors
Oleg Kalnichevski [Wed, 10 Oct 2018 20:33:10 +0000 (22:33 +0200)] 
Fixed javadoc errors

8 weeks agoTweaked SSL and ALPN test cases to make them pass with Java 11
Oleg Kalnichevski [Mon, 8 Oct 2018 10:18:49 +0000 (12:18 +0200)] 
Tweaked SSL and ALPN test cases to make them pass with Java 11

8 weeks agoBug fix: corrected handling of NEED_WRAP handshake status during graceful SSL session...
Oleg Kalnichevski [Wed, 10 Oct 2018 15:07:41 +0000 (17:07 +0200)] 
Bug fix: corrected handling of NEED_WRAP handshake status during graceful SSL session termination

8 weeks agoUse a finite timeout for Future#get in integration tests
Oleg Kalnichevski [Wed, 10 Oct 2018 13:00:44 +0000 (15:00 +0200)] 
Use a finite timeout for Future#get in integration tests

8 weeks agoBug fix: corrected handling of graceful SSL session termination initiated by the...
Oleg Kalnichevski [Wed, 10 Oct 2018 12:59:13 +0000 (14:59 +0200)] 
Bug fix: corrected handling of graceful SSL session termination initiated by the opposite endpoint

8 weeks agoBug fix: clear connect interest on TLS session
Oleg Kalnichevski [Wed, 10 Oct 2018 09:39:29 +0000 (11:39 +0200)] 
Bug fix: clear connect interest on TLS session

2 months agoPerformance optimization: non-blocking message stream handlers to flush message heads...
Oleg Kalnichevski [Tue, 9 Oct 2018 11:54:41 +0000 (13:54 +0200)] 
Performance optimization: non-blocking message stream handlers to flush message heads early whenever possible

2 months agoPerformance optimization: I/O sessions to trigger output event as early as there...
Oleg Kalnichevski [Tue, 9 Oct 2018 11:26:53 +0000 (13:26 +0200)] 
Performance optimization: I/O sessions to trigger output event as early as there is interest in output

2 months agoBug fix: do not disable output when HTTP/1.1 stream has pending output data
Oleg Kalnichevski [Tue, 9 Oct 2018 12:07:03 +0000 (14:07 +0200)] 
Bug fix: do not disable output when HTTP/1.1 stream has pending output data

2 months agoFixed HTTP/1.1 stream logging in some integration tests
Oleg Kalnichevski [Mon, 8 Oct 2018 15:14:54 +0000 (17:14 +0200)] 
Fixed HTTP/1.1 stream logging in some integration tests

2 months agoHTTPCLIENT-1945: Fixed project website in POM
Oleg Kalnichevski [Sun, 7 Oct 2018 13:30:17 +0000 (15:30 +0200)] 
HTTPCLIENT-1945: Fixed project website in POM

2 months agoUse Timeout to represent timeout values used by I/O sessions, HTTP connections and...
Oleg Kalnichevski [Sun, 7 Oct 2018 11:14:54 +0000 (13:14 +0200)] 
Use Timeout to represent timeout values used by I/O sessions, HTTP connections and HTTP endpoints

2 months agoUse TimeValue / Timeout to represent time values in config classes
Oleg Kalnichevski [Fri, 5 Oct 2018 08:11:35 +0000 (10:11 +0200)] 
Use TimeValue / Timeout to represent time values in config classes

2 months agoRemoved references to MessageHeaders deprecated methods
Ryan Schmitt [Wed, 3 Oct 2018 19:36:45 +0000 (12:36 -0700)] 
Removed references to MessageHeaders deprecated methods

2 months agoDon't drop ReactiveDataConsumer window updates
Ryan Schmitt [Tue, 2 Oct 2018 20:37:10 +0000 (13:37 -0700)] 
Don't drop ReactiveDataConsumer window updates

It is possible, in principle, for the ReactiveDataConsumer's update
channel to be null when a flush occurs. If this happens, the window
update increment will be dropped, permanently decreasing the size of the
transfer window. With this change, window update increments will
accumulate across flushes until the update channel is set.

2 months agoJavadoc.
Gary Gregory [Wed, 3 Oct 2018 15:30:07 +0000 (09:30 -0600)] 
Javadoc.

2 months agoReuse our UriScheme enum instead of magic strings.
Gary Gregory [Wed, 3 Oct 2018 15:28:29 +0000 (09:28 -0600)] 
Reuse our UriScheme enum instead of magic strings.

2 months ago* Deprecate and rename
Gary Gregory [Wed, 3 Oct 2018 14:54:53 +0000 (08:54 -0600)] 
* Deprecate and rename
org.apache.hc.core5.http.EndpointDetails.getSocketTimeout() to
getSocketTimeoutMillis().
* Deprecate and rename
org.apache.hc.core5.http.MessageHeaders.getAllHeaders() to getHeaders().
* Deprecate and rename
org.apache.hc.core5.http.MessageHeaders.getSingleHeaders(String) to
getHeader(String).

2 months agoReactiveEntityProducer: Accept ContentType parameter
Ryan Schmitt [Fri, 28 Sep 2018 19:21:31 +0000 (12:21 -0700)] 
ReactiveEntityProducer: Accept ContentType parameter

2 months agoRename org.apache.hc.core5.http.MessageHeaders.getAllHeaders() to
Gary Gregory [Mon, 1 Oct 2018 14:20:53 +0000 (08:20 -0600)] 
Rename org.apache.hc.core5.http.MessageHeaders.getAllHeaders() to
getHeaders().

2 months agoRename org.apache.hc.core5.http.EndpointDetails.getSocketTimeout() to
Gary Gregory [Sun, 30 Sep 2018 18:24:09 +0000 (12:24 -0600)] 
Rename org.apache.hc.core5.http.EndpointDetails.getSocketTimeout() to
getSocketTimeoutMillis().

2 months agoConsistent use of chunk size hint parameter by HTTP/1.1 protocol handler
Oleg Kalnichevski [Fri, 28 Sep 2018 13:04:02 +0000 (15:04 +0200)] 
Consistent use of chunk size hint parameter by HTTP/1.1 protocol handler

2 months agoPrefer graceful to immediate close mode
Oleg Kalnichevski [Fri, 28 Sep 2018 16:41:21 +0000 (18:41 +0200)] 
Prefer graceful to immediate close mode

2 months agoRemoved unnecessary if statement
Oleg Kalnichevski [Fri, 28 Sep 2018 12:58:37 +0000 (14:58 +0200)] 
Removed unnecessary if statement

2 months agoHTTPCLIENT-1942: Add example of full-duplex reactive message exchange
Ryan Schmitt [Thu, 27 Sep 2018 23:28:23 +0000 (16:28 -0700)] 
HTTPCLIENT-1942: Add example of full-duplex reactive message exchange

2 months agoInclude error code in the H2StreamResetException message
Oleg Kalnichevski [Tue, 25 Sep 2018 14:20:44 +0000 (16:20 +0200)] 
Include error code in the H2StreamResetException message

2 months agoJavadoc and sort methods.
Gary Gregory [Thu, 20 Sep 2018 22:52:43 +0000 (16:52 -0600)] 
Javadoc and sort methods.

2 months agoReplace object creation with reference to static final object.
Gary Gregory [Tue, 18 Sep 2018 22:21:47 +0000 (16:21 -0600)] 
Replace object creation with reference to static final object.

2 months agoAdd missing '@Override' annotations.
Gary Gregory [Tue, 18 Sep 2018 22:06:29 +0000 (16:06 -0600)] 
Add missing '@Override' annotations.

2 months agoReplace object creation with reference to static final object.
Gary Gregory [Mon, 17 Sep 2018 23:11:28 +0000 (17:11 -0600)] 
Replace object creation with reference to static final object.

2 months agoUpdated HttpBenchmark tool verbose output to print HTTP/2 specific details
Oleg Kalnichevski [Mon, 17 Sep 2018 20:04:18 +0000 (22:04 +0200)] 
Updated HttpBenchmark tool verbose output to print HTTP/2 specific details

2 months agoAdded missing HTTP version policy setting
Oleg Kalnichevski [Mon, 17 Sep 2018 13:25:35 +0000 (15:25 +0200)] 
Added missing HTTP version policy setting

2 months agoAdded support for HTTP/2 transport to the internal HTTP benchmark
Oleg Kalnichevski [Mon, 17 Sep 2018 11:55:25 +0000 (13:55 +0200)] 
Added support for HTTP/2 transport to the internal HTTP benchmark

2 months agoBug fix: corrected handling of FORCE_HTTP2 version policy by the server side protocol...
Oleg Kalnichevski [Mon, 17 Sep 2018 11:55:18 +0000 (13:55 +0200)] 
Bug fix: corrected handling of FORCE_HTTP2 version policy by the server side protocol negotiator

2 months agoImproved consistency with AB command interface; removed support for HTTP/1.0
Oleg Kalnichevski [Mon, 17 Sep 2018 09:54:17 +0000 (11:54 +0200)] 
Improved consistency with AB command interface; removed support for HTTP/1.0

2 months agoNormalize line delimiters prior to comparing multi-line strings
Oleg Kalnichevski [Mon, 17 Sep 2018 09:08:06 +0000 (11:08 +0200)] 
Normalize line delimiters prior to comparing multi-line strings

2 months agoIncreased socket and result timeouts in reactive streams integration tests; removed...
Oleg Kalnichevski [Sat, 15 Sep 2018 09:46:04 +0000 (11:46 +0200)] 
Increased socket and result timeouts in reactive streams integration tests; removed fixed timeouts for test duration

2 months agoRedesign of the internal HTTP benchmark loosely based on AB
Oleg Kalnichevski [Tue, 11 Sep 2018 11:25:25 +0000 (13:25 +0200)] 
Redesign of the internal HTTP benchmark loosely based on AB

2 months agoUpdate the
Gary Gregory [Fri, 14 Sep 2018 18:05:11 +0000 (12:05 -0600)] 
Update the
org.apache.hc.core5.http.protocol.HttpContext.setAttribute(String,
Object) API to return the previous value.

2 months agoAdded 'chunked' constructor parameter to BasicAsyncEntityProducer and FileEntityProducer
Oleg Kalnichevski [Tue, 11 Sep 2018 11:24:22 +0000 (13:24 +0200)] 
Added 'chunked' constructor parameter to BasicAsyncEntityProducer and FileEntityProducer

2 months agoFix typo in message generated by org.apache.hc.core5.io.SocketTimeoutExceptionFactory...
Gary Gregory [Tue, 11 Sep 2018 20:24:31 +0000 (14:24 -0600)] 
Fix typo in message generated by org.apache.hc.core5.io.SocketTimeoutExceptionFactory.toMessage(int).

2 months agoRegression: fixed the response connection control interceptor incorrectly using ...
Oleg Kalnichevski [Mon, 10 Sep 2018 14:24:06 +0000 (16:24 +0200)] 
Regression: fixed the response connection control interceptor incorrectly using 'Connection: keep-alive' directive with HTTP/1.0 requests that do not have an explicit 'Connection' request header

3 months agoHTTPCORE-551: Reactive Streams server side APIs
Ryan Schmitt [Sat, 1 Sep 2018 19:58:12 +0000 (12:58 -0700)] 
HTTPCORE-551: Reactive Streams server side APIs

3 months agoHTTPCORE-558: add HTTP status codes from RFC 3229
Georg Berky [Sat, 8 Sep 2018 10:10:46 +0000 (12:10 +0200)] 
HTTPCORE-558: add HTTP status codes from RFC 3229

3 months agoHTTPCORE-557: add http status code 506
sparsick [Sat, 8 Sep 2018 09:58:33 +0000 (11:58 +0200)] 
HTTPCORE-557: add http status code 506

3 months agoHTTPCORE-556: add HTTP status codes from RFC 2774
Georg Berky [Sat, 8 Sep 2018 09:49:04 +0000 (11:49 +0200)] 
HTTPCORE-556: add HTTP status codes from RFC 2774

3 months agoHTTPCORE-555: add status code 451
sparsick [Sat, 8 Sep 2018 09:45:03 +0000 (11:45 +0200)] 
HTTPCORE-555: add status code 451

3 months agoHTTPCORE-554: add http stats code 308
sparsick [Sat, 8 Sep 2018 09:20:10 +0000 (11:20 +0200)] 
HTTPCORE-554: add http stats code 308

3 months agoHTTPCORE-553: add HTTP status codes from RFC 5842
Georg Berky [Sat, 8 Sep 2018 09:27:08 +0000 (11:27 +0200)] 
HTTPCORE-553: add HTTP status codes from RFC 5842

3 months agoHTTPCORE-552: add http status code 103
sparsick [Sat, 8 Sep 2018 08:56:06 +0000 (10:56 +0200)] 
HTTPCORE-552: add http status code 103

3 months agoAdded generic HTTP stream reset exception; removed dependency on HTTP/2 specific...
Oleg Kalnichevski [Fri, 31 Aug 2018 20:25:13 +0000 (22:25 +0200)] 
Added generic HTTP stream reset exception; removed dependency on HTTP/2 specific code from Reactive Streams module

3 months agoHTTPCLIENT-1942: Add support for Reactive Streams
Ryan Schmitt [Fri, 17 Aug 2018 21:16:04 +0000 (14:16 -0700)] 
HTTPCLIENT-1942: Add support for Reactive Streams

This commit adds initial support for the Reactive Streams specification
[1]. The main part of this change is a pair of non-public classes, the
ReactiveDataProducer and ReactiveDataConsumer, which are reactive
adapters for Apache's AsyncDataProducer and AsyncDataConsumer
interfaces. Two public classes are built on top of these types:

* ReactiveEntityProducer: An AsyncEntityProducer implementation backed
  by ReactiveDataProducer that allows a Publisher<ByteBuffer> to be
  streamed as a request body
* ReactiveResponseConsumer: An AsyncResponseConsumer that exposes a
  special callback that provides a view of the streaming HTTP response
  as a Message<HttpResponse, Publisher<ByteBuffer>>, allowing the body
  to be consumed by a Subscriber<ByteBuffer>

[1] http://www.reactive-streams.org/

3 months agoRespect CloseMode when closing async TCP sockets
Ryan Schmitt [Fri, 31 Aug 2018 01:16:01 +0000 (18:16 -0700)] 
Respect CloseMode when closing async TCP sockets

Previously, the IOSessionImpl implementation of ModalCloseable ignored
the CloseMode parameter and would always perform a GRACEFUL shutdown
(i.e. a TCP FIN). With this change, the CloseMode parameter will be
respected, and an IMMEDIATE shutdown will result in a TCP RST.

3 months agoAdded missing reports to H2 and Testing modules
Oleg Kalnichevski [Wed, 29 Aug 2018 15:08:03 +0000 (17:08 +0200)] 
Added missing reports to H2 and Testing modules

3 months agoUpgraded HttpCore version to 5.0-beta4-SNAPSHOT
Oleg Kalnichevski [Wed, 29 Aug 2018 07:46:25 +0000 (09:46 +0200)] 
Upgraded HttpCore version to 5.0-beta4-SNAPSHOT

3 months agoHttpCore 5.0-beta3 release 5.0-beta3 5.0-beta3-RC1
Oleg Kalnichevski [Sun, 26 Aug 2018 17:47:31 +0000 (19:47 +0200)] 
HttpCore 5.0-beta3 release

3 months agoUpdated release notes for HttpCore 5.0-beta3 release
Oleg Kalnichevski [Sun, 26 Aug 2018 17:36:02 +0000 (19:36 +0200)] 
Updated release notes for HttpCore 5.0-beta3 release

3 months agoUpgraded nginx image to version 1.15; fixed push configuration
Oleg Kalnichevski [Sun, 26 Aug 2018 15:33:35 +0000 (17:33 +0200)] 
Upgraded nginx image to version 1.15; fixed push configuration

3 months agoCorrected travis-ci.org link; removed coveralls.io link
Oleg Kalnichevski [Sun, 26 Aug 2018 11:57:47 +0000 (13:57 +0200)] 
Corrected travis-ci.org link; removed coveralls.io link

3 months agoRemoved HttpCore 4.x tutorual sources
Oleg Kalnichevski [Sun, 26 Aug 2018 11:49:16 +0000 (13:49 +0200)] 
Removed HttpCore 4.x tutorual sources

3 months agoJavadocs for core HTTP/2 APIs
Oleg Kalnichevski [Sat, 25 Aug 2018 17:05:12 +0000 (19:05 +0200)] 
Javadocs for core HTTP/2 APIs

3 months agoJavadocs for core HTTP APIs
Oleg Kalnichevski [Fri, 10 Aug 2018 15:18:17 +0000 (17:18 +0200)] 
Javadocs for core HTTP APIs

3 months agoJavadocs for core non-HTTP specific APIs
Oleg Kalnichevski [Sat, 4 Aug 2018 19:26:26 +0000 (21:26 +0200)] 
Javadocs for core non-HTTP specific APIs

3 months agoJavadocs for abstract data channels, data producers and data consumers
Oleg Kalnichevski [Sat, 4 Aug 2018 11:34:01 +0000 (13:34 +0200)] 
Javadocs for abstract data channels, data producers and data consumers

3 months agoMoved classes (no functional changes)
Oleg Kalnichevski [Wed, 15 Aug 2018 17:47:50 +0000 (19:47 +0200)] 
Moved classes (no functional changes)

3 months ago- Always use blocks
Gary Gregory [Tue, 14 Aug 2018 15:55:51 +0000 (09:55 -0600)] 
- Always use blocks
- Add missing serial version ID (default 1L)
- Camel-case names.
- Don't nest in else clause unnecessarily.

3 months agoBetter formatting of exception message.
Gary Gregory [Tue, 14 Aug 2018 05:43:46 +0000 (23:43 -0600)] 
Better formatting of exception message.

3 months agoRefactor common code into a new ctor.
Gary Gregory [Tue, 14 Aug 2018 05:16:42 +0000 (23:16 -0600)] 
Refactor common code into a new ctor.

3 months ago[HTTPCORE-550] When a ParseException is caught and rethrown as an
Gary Gregory [Tue, 14 Aug 2018 04:07:36 +0000 (22:07 -0600)] 
[HTTPCORE-550] When a ParseException is caught and rethrown as an
IOException in
org.apache.http.impl.nio.codecs.ChunkDecoder.processFooters(),
the IOException does not chain the original ParseException.

3 months agoBetter formatting of exception message (port from 4.4.x.)
Gary Gregory [Tue, 14 Aug 2018 03:54:03 +0000 (21:54 -0600)] 
Better formatting of exception message (port from 4.4.x.)

3 months agoJavadoc. Do not nest in else clauses unnecessarily. Don't hide
Gary Gregory [Tue, 14 Aug 2018 00:31:44 +0000 (18:31 -0600)] 
Javadoc. Do not nest in else clauses unnecessarily. Don't hide
ivars.Javadoc. Comment empty block.

3 months agoAccess completed state via methods (better for debugging too.)
Gary Gregory [Tue, 14 Aug 2018 00:12:21 +0000 (18:12 -0600)] 
Access completed state via methods (better for debugging too.)

3 months agoBetter exception messages.
Gary Gregory [Mon, 13 Aug 2018 23:13:56 +0000 (17:13 -0600)] 
Better exception messages.

3 months agoUse camel-case for ivars and param names; don't nest with else clauses
Gary Gregory [Mon, 13 Aug 2018 22:54:47 +0000 (16:54 -0600)] 
Use camel-case for ivars and param names; don't nest with else clauses
unnecessarily; comment intention of empty blocks; use "readLen" name for
local var instead of "i" or other cryptic name to hold read length of a
read() API call; no need to specify default values in ivar declarations.