protected void processMessage(AbstractMessage incomingMessage) { if (incomingMessage.isProcessed() && !(incomingMessage instanceof HaveMessage || incomingMessage instanceof BlockReplyMessage)) return; AbstractMessage replyMessage = null; // USM if (incomingMessage instanceof SubscribeMessage) { replyMessage = this.handleSubscribe((SubscribeMessage) incomingMessage); } else if (incomingMessage instanceof InterestedMessage) { replyMessage = this.handleInterested((InterestedMessage) incomingMessage); } else if (incomingMessage instanceof DisconnectMessage) { DisconnectMessage disconnectMessage = (DisconnectMessage) incomingMessage; if (disconnectMessage.stopUploading()) this.handleDisconnect(disconnectMessage); // TUNER if (disconnectMessage.stopDownloading()) this.handleDisconnect(disconnectMessage); } else if (incomingMessage instanceof HaveMessage) { this.handleHave((HaveMessage) incomingMessage); } else if (incomingMessage instanceof SubscribedMessage) { this.handleSubscribed((SubscribedMessage) incomingMessage); } else if (incomingMessage instanceof QueuedMessage) { this.handleQueued((QueuedMessage) incomingMessage); } else if (incomingMessage instanceof GrantedMessage) { this.handleGranted((GrantedMessage) incomingMessage); } else if (incomingMessage instanceof BlockReplyMessage) { this.handleBlockReply((BlockReplyMessage) incomingMessage); } else if (incomingMessage instanceof PeerSuggestionMessage) { this.handlePeerSuggestion((PeerSuggestionMessage) incomingMessage); } else { logger.warn("Unknown message received, not processing (" + incomingMessage + ")"); } incomingMessage.setReplyMessage(replyMessage, incomingMessage.getSender()); }