From 136b17522a5a23c5fd4c5c50b1388f4bb602ead8 Mon Sep 17 00:00:00 2001 From: Juan Ignacio Ubeira <jubeira@ekumenlabs.com> Date: Mon, 29 May 2017 11:24:36 -0300 Subject: [PATCH] Fix to avoid spurious exceptions on node shutdown if there's an active topic. - Minor nits for ParameterLoaderNode --- rosjava/src/main/java/org/ros/internal/node/DefaultNode.java | 3 +-- .../src/main/java/org/ros/helpers/ParameterLoaderNode.java | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rosjava/src/main/java/org/ros/internal/node/DefaultNode.java b/rosjava/src/main/java/org/ros/internal/node/DefaultNode.java index a1572cb3..e5a4b7c0 100644 --- a/rosjava/src/main/java/org/ros/internal/node/DefaultNode.java +++ b/rosjava/src/main/java/org/ros/internal/node/DefaultNode.java @@ -39,8 +39,6 @@ import org.ros.internal.node.service.ServiceDeclaration; import org.ros.internal.node.service.ServiceFactory; import org.ros.internal.node.service.ServiceIdentifier; import org.ros.internal.node.service.ServiceManager; -import org.ros.internal.node.topic.DefaultPublisher; -import org.ros.internal.node.topic.DefaultSubscriber; import org.ros.internal.node.topic.PublisherFactory; import org.ros.internal.node.topic.SubscriberFactory; import org.ros.internal.node.topic.TopicDeclaration; @@ -405,6 +403,7 @@ public class DefaultNode implements ConnectedNode { // NOTE(damonkohler): We don't want to raise potentially spurious // exceptions during shutdown that would interrupt the process. This is // simply best effort cleanup. + slaveServer.shutdown(); topicParticipantManager.shutdown(); for (ServiceServer<?, ?> serviceServer : serviceManager.getServers()) { try { diff --git a/rosjava_helpers/src/main/java/org/ros/helpers/ParameterLoaderNode.java b/rosjava_helpers/src/main/java/org/ros/helpers/ParameterLoaderNode.java index 47aa4406..25fcdd64 100644 --- a/rosjava_helpers/src/main/java/org/ros/helpers/ParameterLoaderNode.java +++ b/rosjava_helpers/src/main/java/org/ros/helpers/ParameterLoaderNode.java @@ -40,7 +40,7 @@ import java.util.Map; public class ParameterLoaderNode extends AbstractNodeMain { public static final String NODE_NAME = "parameter_loader"; - private final List<LoadedResource> params = new ArrayList<>(); + private final List<LoadedResource> params = new ArrayList<LoadedResource>(); private Log log; /** @@ -57,6 +57,7 @@ public class ParameterLoaderNode extends AbstractNodeMain { this.params.add(new LoadedResource((new Yaml()).load(ymlInputStream), namespace)); } + @SuppressWarnings("unchecked") private void addParams(ParameterTree parameterTree, String namespace, Map<String, Object> params) { for (Map.Entry<String, Object> e : params.entrySet()) { String fullKeyName = namespace + "/" + e.getKey(); -- GitLab