Close ObjectOutputStream before calling toByteArray on underlying ByteArrayOutputStream #28.
When an ObjectOutputStream instance wraps an underlying ByteArrayOutputStream instance,
it is recommended to flush or close the ObjectOutputStream before invoking the underlying instances's toByteArray(). Although in this case it is not strictly necessary because writeObject method is invoked right before toByteArray, and writeObject internally calls flush/drain. However, it is good practice to call flush/close explicitly as mentioned, for example, here.
This pull request flips the order of close and toytBeArray methods.