JDK-6395224 : (so) SocketChannel writer blocked on large buffer is not preempted by close method (vista)
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.nio
  • Affected Version: 1.4.2,5.0,6
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS:
    linux,windows,windows_xp,windows_vista linux,windows,windows_xp,windows_vista
  • CPU: generic,x86,itanium
  • Submitted: 2006-03-07
  • Updated: 2016-03-18
  • Resolved: 2011-03-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7 b100Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Description
The unit test test/java/nio/channels/AsyncCloseAndInterrupt.java fails on Windows Vista beta 2.

The issue appears to be a bug in Windows Vista whereby closesocket does not preempt a thread that is blocked on WSASend with a buffer of length >= 128k. Preemption occurs as expected with buffers < 128k. This impacts NIO as we expect that the write method will throw an AsynchronousCloseException when the thread is interrupted or the SocketChannel is closed. Classic networking is not impacted by this bug as it limits the write buffer to 64k.

Comments
EVALUATION The test has been failing on Windows Server 2003 for the same reason. We have to limit the I/O size to 128k-1.
08-03-2006