Intermodalics / tango_ros

ROS related software for Tango
Apache License 2.0
67 stars 22 forks source link

App crashes if rosparam value does not match its type #321

Closed PerrineAguiar closed 7 years ago

PerrineAguiar commented 7 years ago

Crashes with:

06-20 14:40:14.865 8390-8422/? E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-7
                                                 Process: eu.intermodalics.tango_ros_streamer, PID: 8390
                                                 org.ros.exception.ParameterClassCastException: Cannot cast parameter to: java.lang.Boolean
                                                     at org.ros.internal.node.parameter.DefaultParameterTree.get(DefaultParameterTree.java:206)
                                                     at org.ros.internal.node.parameter.DefaultParameterTree.getBoolean(DefaultParameterTree.java:225)
                                                     at org.ros.internal.node.parameter.DefaultParameterTree.getBoolean(DefaultParameterTree.java:230)
                                                     at eu.intermodalics.tango_ros_common.ParameterNode.setPreferencesFromParameterServer(ParameterNode.java:111)
                                                     at eu.intermodalics.tango_ros_common.ParameterNode.syncLocalPreferencesWithParameterServer(ParameterNode.java:69)
                                                     at eu.intermodalics.tango_ros_common.ParameterNode.onStart(ParameterNode.java:61)
                                                     at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:508)
                                                     at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:505)
                                                     at org.ros.concurrent.EventDispatcher.loop(EventDispatcher.java:43)
                                                     at org.ros.concurrent.CancellableLoop.run(CancellableLoop.java:56)
                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                     at java.lang.Thread.run(Thread.java:818)
                                                  Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
                                                     at java.lang.Class.cast(Class.java:1505)

Should not crash but use default value and print error instead.