protected void removeRequest(PeerNATTraversal request, int outcome) { synchronized (initiators) { LinkedList requests = (LinkedList) initiators.get(request.getInitiator()); if (requests != null) { requests.remove(request); } pending_requests.remove(request); if (active_requests.remove(request)) { usage_average.addValue(request.getTimeUsed()); if (outcome == OUTCOME_SUCCESS) { success_count++; } else { InetSocketAddress target = request.getTarget(); negative_result_bloom.add(target.toString().getBytes()); if (outcome == OUTCOME_FAILED_NO_REND) { failed_no_rendezvous++; } } } } }