On 25/03/2018 19:13, Ivan Gerasimov wrote:
:
In the code above, newfd was obtained from a call to accept() a few
lines before this check.
So, the Java code has no way of being aware of this socket, and it
will never be closed unless we do it right here, before returning -1.
The SocketImpl's fd is set with this code:
(*env)->SetIntField(env, socketFdObj, IO_fd_fdID, fd);
If there is any possibility of returning without a pending exception it
will be registered with the cleaner.
At this point, I think we have to treat all code calling NET_SocketClose
as a suspect until the regression is tracked down.
-Alan