From 373a1bf6882153d28df0baf41634ad445b75f797 Mon Sep 17 00:00:00 2001 From: dwlee Date: Thu, 16 Jul 2015 10:48:57 +0900 Subject: [PATCH 1/2] update exception and merge from previous PR7 --- .../master_info/MasterInfo.java | 21 +++++++++++++------ .../rocon_interactions/RoconInteractions.java | 15 ++++++++++++- .../BlockingServiceClientNode.java | 4 ++++ .../rosjava_utils/ListenerNode.java | 2 +- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java index 76c8d1b..66132d3 100644 --- a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java +++ b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java @@ -9,6 +9,7 @@ import com.github.robotics_in_concert.rocon_rosjava_core.rosjava_utils.RosTopicInfo; import com.google.common.collect.Lists; +import org.ros.exception.RosRuntimeException; import org.ros.internal.loader.CommandLineLoader; import org.ros.namespace.GraphName; import org.ros.node.AbstractNodeMain; @@ -31,13 +32,21 @@ public MasterInfo() { this.masterInfoListener = new ListenerNode(); } @Override - public void onStart(final ConnectedNode connectedNode) { - RosTopicInfo topicInformation = new RosTopicInfo(connectedNode); - String topicName = topicInformation.findTopic("rocon_std_msgs/MasterInfo"); - this.masterInfoListener.connect(connectedNode, topicName, rocon_std_msgs.MasterInfo._TYPE); - } + public void onStart (final ConnectedNode connectedNode) { + try{ + RosTopicInfo topicInformation = new RosTopicInfo(connectedNode); + String topicName = topicInformation.findTopic("rocon_std_msgs/MasterInfo"); + this.masterInfoListener.connect(connectedNode, topicName, rocon_std_msgs.MasterInfo._TYPE); + } catch (RosRuntimeException e){ + try { + throw new MasterInfoException(e.getMessage()); + } catch (MasterInfoException e1) { + e1.printStackTrace(); + } + } + } - /** + /** * Wait for data to come in. This uses a default timeout * set by ListenerNode. * diff --git a/rocon_interactions/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rocon_interactions/RoconInteractions.java b/rocon_interactions/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rocon_interactions/RoconInteractions.java index 166132e..56b476c 100644 --- a/rocon_interactions/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rocon_interactions/RoconInteractions.java +++ b/rocon_interactions/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rocon_interactions/RoconInteractions.java @@ -78,8 +78,21 @@ public void onStart(final ConnectedNode connectedNode) { } } catch (ServiceNotFoundException e) { // should be having some sort of error flag that can be picked up in waitForResponse - return; + try { + throw new ServiceNotFoundException(e.getMessage()); + } catch (ServiceNotFoundException e1) { + e1.printStackTrace(); + } } + catch (RosRuntimeException e) { + // should be having some sort of error flag that can be picked up in waitForResponse + try { + throw new RosRuntimeException (e.getMessage()); + } catch (RosRuntimeException e1) { + e1.printStackTrace(); + } + return; + } } /** diff --git a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java index e388dca..37b9788 100644 --- a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java +++ b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java @@ -5,6 +5,7 @@ *****************************************************************************/ import org.ros.exception.RemoteException; +import org.ros.exception.RosRuntimeException; import org.ros.exception.ServiceNotFoundException; import org.ros.namespace.NameResolver; import org.ros.namespace.NodeNameResolver; @@ -35,6 +36,9 @@ public BlockingServiceClientNode(ConnectedNode connectedNode, String serviceName } catch (ServiceNotFoundException e) { throw e; } + catch (RosRuntimeException e) { + throw e; + } srvClient.call(request, this.setupListener()); } diff --git a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java index cfc68c4..5145961 100644 --- a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java +++ b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java @@ -63,7 +63,7 @@ public void waitForResponse() throws ListenerException, TimeoutException { throw new ListenerException(e); } // timeout. - if ( count == 20 ) { + if ( count == 50 ) { this.errorMessage = "timed out waiting for a " + subscriber.getTopicName() + "publication"; throw new TimeoutException(this.errorMessage); } From 8c576df9c12c915adaf1de45ab7bce4d242f939a Mon Sep 17 00:00:00 2001 From: dwlee Date: Thu, 16 Jul 2015 11:02:55 +0900 Subject: [PATCH 2/2] fix indent --- .../rosjava_utils/BlockingServiceClientNode.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java index 37b9788..3aefae2 100644 --- a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java +++ b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/BlockingServiceClientNode.java @@ -35,11 +35,10 @@ public BlockingServiceClientNode(ConnectedNode connectedNode, String serviceName srvClient = connectedNode.newServiceClient(resolvedServiceName, serviceType); } catch (ServiceNotFoundException e) { throw e; - } - catch (RosRuntimeException e) { - throw e; - } - srvClient.call(request, this.setupListener()); + } catch (RosRuntimeException e) { + throw e; + } + srvClient.call(request, this.setupListener()); } public void waitForResponse() {