From c5e8eb76ee8881f684170d05a62cfb14e182a040 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Tue, 11 Oct 2016 15:29:47 +0200
Subject: [PATCH] make VectorPrinter more resilient to "null" values

---
 .../r/nodes/builtin/base/printer/VectorPrinter.java    | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/VectorPrinter.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/VectorPrinter.java
index a6162c91a0..544f8bfe59 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/VectorPrinter.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/VectorPrinter.java
@@ -330,7 +330,7 @@ abstract class VectorPrinter<T extends RAbstractVector> extends AbstractValuePri
                     w[j] = formatVector(0, 0);
                 }
 
-                if (cl != null) {
+                if (cl != null && cl.getDataAt(j) != null) {
                     String clj = cl.getDataAt(j);
                     if (RRuntime.isNA(clj)) {
                         clabw = pp.getNaWidthNoquote();
@@ -413,7 +413,7 @@ abstract class VectorPrinter<T extends RAbstractVector> extends AbstractValuePri
         private void matrixColumnLabel(RAbstractStringVector cl, int j, int w) {
             PrintParameters pp = printCtx.parameters();
 
-            if (cl != null) {
+            if (cl != null && cl.getDataAt(j) != null) {
                 String tmp = cl.getDataAt(j);
                 int l = (RRuntime.isNA(tmp)) ? pp.getNaWidthNoquote() : tmp.length();
                 int gap = w - l;
@@ -433,7 +433,7 @@ abstract class VectorPrinter<T extends RAbstractVector> extends AbstractValuePri
         protected void rightMatrixColumnLabel(RAbstractStringVector cl, int j, int w) {
             PrintParameters pp = printCtx.parameters();
 
-            if (cl != null) {
+            if (cl != null && cl.getDataAt(j) != null) {
                 String tmp = cl.getDataAt(j);
                 int l = (RRuntime.isNA(tmp)) ? pp.getNaWidthNoquote() : tmp.length();
                 /*
@@ -458,7 +458,7 @@ abstract class VectorPrinter<T extends RAbstractVector> extends AbstractValuePri
         protected void leftMatrixColumnLabel(RAbstractStringVector cl, int j, int w) {
             PrintParameters pp = printCtx.parameters();
 
-            if (cl != null) {
+            if (cl != null && cl.getDataAt(j) != null) {
                 String tmp = cl.getDataAt(j);
                 int l = (RRuntime.isNA(tmp)) ? pp.getNaWidthNoquote() : tmp.length();
                 String g1 = asBlankArg(pp.getGap());
@@ -480,7 +480,7 @@ abstract class VectorPrinter<T extends RAbstractVector> extends AbstractValuePri
         protected void matrixRowLabel(RAbstractStringVector rl, int i, int rlabw, int lbloff) {
             PrintParameters pp = printCtx.parameters();
 
-            if (rl != null) {
+            if (rl != null && rl.getDataAt(i) != null) {
                 String tmp = rl.getDataAt(i);
                 int l = (RRuntime.isNA(tmp)) ? pp.getNaWidthNoquote() : tmp.length();
                 String gap = asBlankArg(rlabw - l - lbloff);
-- 
GitLab