@Override public SubscriptionResponse addsubscription( final long subscriptionid, final String[] subscriptions, final String[] exclusions) { final Subscriber subscriber = this.subscribers.get(subscriptionid); if (subscriber == null) { return new SubscriptionResponse(); } else { synchronized (subscriber.getModifyLock()) { if (exclusions != null) { final ArrayList<String> newExclusions = new ArrayList<String>(Arrays.asList(subscriber.getExclusions())); newExclusions.addAll(Arrays.asList(exclusions)); subscriber.setExclusions(newExclusions.toArray(new String[] {})); } if (subscriptions != null) { final ArrayList<String> newSubscriptions = new ArrayList<String>(Arrays.asList(subscriber.getSubscriptions())); newSubscriptions.addAll(Arrays.asList(subscriptions)); subscriber.setSubscriptions(newSubscriptions.toArray(new String[] {})); } } final SubscriptionResponse ret = new SubscriptionResponse(subscriber); ret.setSubscribed(true); return ret; } }