diff options
Diffstat (limited to 'protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java')
-rw-r--r-- | protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java index 6e1dfffb9..933184a19 100644 --- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java +++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java @@ -1055,12 +1055,15 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { case LeaseUpdateMessage.TOPIC_UPDATE: { // There is an older r-OSGi version that incorrectly sends an ArrayList // (1.0.0.RC4_v20131016-1848) - Object object = suMsg.getPayload()[0]; - if (object instanceof List) { - object = ((List) object).toArray(new String[0]); + Object topicsAdded = suMsg.getPayload()[0]; + if (topicsAdded instanceof List) { + topicsAdded = ((List) topicsAdded).toArray(new String[0]); } - updateTopics((String[]) suMsg.getPayload()[0], (String[]) suMsg - .getPayload()[1]); + Object topicsRemoved = suMsg.getPayload()[1]; + if (topicsRemoved instanceof List) { + topicsRemoved = ((List) topicsRemoved).toArray(new String[0]); + } + updateTopics((String[]) topicsAdded, (String[]) topicsRemoved); return null; } case LeaseUpdateMessage.SERVICE_ADDED: { |