From e01a1813a124806031739b7695eb86bee7cfdf0c Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Thu, 19 Apr 2018 14:51:34 +0200
Subject: [PATCH] Allow empty message in .signalCondition

---
 .../r/nodes/builtin/base/ConditionFunctions.java      | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java
index 1f8bda07e4..11cd9e372a 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java
@@ -177,8 +177,15 @@ public class ConditionFunctions {
         }
 
         @Specialization
-        protected RNull signalCondition(RList condition, RAbstractStringVector msg, Object call) {
-            RErrorHandling.signalCondition(condition, msg.getDataAt(0), call);
+        protected RNull signalCondition(RList condition, Object msg, Object call) {
+            String msgStr = "";
+            if (msg instanceof RAbstractStringVector) {
+                RAbstractStringVector msgVec = (RAbstractStringVector) msg;
+                if (msgVec.getLength() > 0) {
+                    msgStr = ((RAbstractStringVector) msg).getDataAt(0);
+                }
+            }
+            RErrorHandling.signalCondition(condition, msgStr, call);
             return RNull.instance;
         }
     }
-- 
GitLab