private void addDataToSend( Session session, ChannelType target, byte[] originalData, boolean needEncryption) { byte[] dataToSend = originalData; if (needEncryption) { dataToSend = handleDataEncryption(session.getEncryptor(), target, originalData); } ChannelData channelData = session.getData(target); if (channelData == null) { throw new NullPointerException(); } channelData.addDataToSend(dataToSend); ShadowsocksLocal.getInstance().addEvent(new WriteEvent(session, target)); }