Skip to content

Commit e927c29

Browse files
committed
prevented unnecessary attempts to decode of empty buffers
1 parent 9b0a4b8 commit e927c29

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

‎src/main/java/org/java_websocket/server/WebSocketServer.java‎

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -326,16 +326,18 @@ public void run(){
326326
conn = (WebSocketImpl) key.attachment();
327327
ByteBufferbuf = takeBuffer();
328328
try{
329-
if( SocketChannelIOHelper.read( buf, conn, (ByteChannel) conn.channel ) ){
330-
assert ( buf.hasRemaining() );
331-
conn.inQueue.put( buf );
332-
queue( conn );
333-
i.remove();
334-
if( conn.channelinstanceofWrappedByteChannel ){
335-
if( ( (WrappedByteChannel) conn.channel ).isNeedRead() ){
336-
iqueue.add( conn );
329+
if( SocketChannelIOHelper.read( buf, conn, conn.channel ) ){
330+
if( buf.hasRemaining() ){
331+
conn.inQueue.put( buf );
332+
queue( conn );
333+
i.remove();
334+
if( conn.channelinstanceofWrappedByteChannel ){
335+
if( ( (WrappedByteChannel) conn.channel ).isNeedRead() ){
336+
iqueue.add( conn );
337+
}
337338
}
338-
}
339+
} else
340+
pushBuffer( buf );
339341
} else{
340342
pushBuffer( buf );
341343
}
@@ -346,7 +348,7 @@ public void run(){
346348
}
347349
if( key.isWritable() ){
348350
conn = (WebSocketImpl) key.attachment();
349-
if( SocketChannelIOHelper.batch( conn, (ByteChannel) conn.channel ) ){
351+
if( SocketChannelIOHelper.batch( conn, conn.channel ) ){
350352
if( key.isValid() )
351353
key.interestOps( SelectionKey.OP_READ );
352354
}
@@ -359,9 +361,12 @@ public void run(){
359361
try{
360362
if( SocketChannelIOHelper.readMore( buf, conn, c ) )
361363
iqueue.add( conn );
362-
assert ( buf.hasRemaining() );
363-
conn.inQueue.put( buf );
364-
queue( conn );
364+
if( buf.hasRemaining() ){
365+
conn.inQueue.put( buf );
366+
queue( conn );
367+
} else{
368+
pushBuffer( buf );
369+
}
365370
} catch ( IOExceptione ){
366371
pushBuffer( buf );
367372
throwe;

0 commit comments

Comments
(0)