public void dispose() { if (!isDispose) { isDispose = true; } if (player != null) { if (player.getCurrentHall() != null) { player.getCurrentHall().kickPlayer(this); } player = null; } if (readBuffer != null) { BufferPool.getInstance().releaseBuffer(readBuffer); readBuffer = null; } if (channel != null) { try { channel.close(); } catch (IOException e) { e.printStackTrace(); } finally { channel = null; } } }