title: why jstack out says thread state is "RUNNABLE" while socketRead
body: <p>I have following stacktrace, the thread is blocking at socket read,
  why its state is "RUNNABLE" instead of "BLOCKED" ?</p>
  
  <pre>
      "Thread-80" daemon cpu=390.00 [reset 390.00] ms elapsed=6724.68 [reset 6724.68] s allocated=8140992 B (7.76 MB) [reset 8140992 B (7.76 MB)] defined_classes=81
  io= file i/o: 130069/0 B, net i/o: 314790/394506 B, files opened:0, socks opened:0  [reset file i/o: 130069/0 B, net i/o: 314790/394506 B, files opened:0, socks opened:0 ] 
  prio=6 tid=0x000000002bbeb000 nid=0x35f4 / 13812 runnable  [_thread_in_native (_at_safepoint), stack(0x0000000032630000,0x00000000326a0000)] [0x000000003269e000]
  "Thread-80" daemon cpu=390.00 [reset 390.00] ms elapsed=6724.68 [reset 6724.68] s allocated=8140992 B (7.76 MB) [reset 8140992 B (7.76 MB)] defined_classes=81
  io= file i/o: 130069/0 B, net i/o: 314790/394506 B, files opened:0, socks opened:0  [reset file i/o: 130069/0 B, net i/o: 314790/394506 B, files opened:0, socks opened:0 ] 
  prio=6 tid=0x000000002bbeb000 nid=0x35f4 / 13812 runnable  [_thread_in_native (_at_safepoint), stack(0x0000000032630000,0x00000000326a0000)] [0x000000003269e000]
     java.lang.Thread.State: RUNNABLE
      at java.net.SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(Native Method)
      at java.net.SocketInputStream.read([BIII)I(SocketInputStream.java:150)
      - additional info (remote: default/127.0.0.1:56462, local: localhost/127.0.0.1:2001)
      at java.net.SocketInputStream.read([BII)I(SocketInputStream.java:121)
      - additional info (remote: default/127.0.0.1:56462, local: localhost/127.0.0.1:2001)
      at sun.security.ssl.InputRecord.readFully(Ljava/io/InputStream;[BII)I(InputRecord.java:442)
      at sun.security.ssl.InputRecord.read(Ljava/io/InputStream;Ljava/io/OutputStream;)V(InputRecord.java:480)
      at sun.security.ssl.SSLSocketImpl.readRecord(Lsun/security/ssl/InputRecord;Z)V(SSLSocketImpl.java:927)
  </pre>