From d56b998d5ff92ab7662324a22cb793c3217bd389 Mon Sep 17 00:00:00 2001 From: Diomidis Spinellis Date: Tue, 1 Nov 2005 07:53:42 +0000 Subject: [PATCH] Prevent crash when processing erroneous relation specifications (Andrea Aime) --- src/gr/spinellis/umlgraph/doclet/ClassGraph.java | 6 ++++-- src/gr/spinellis/umlgraph/doclet/ClassInfo.java | 6 ++++-- src/gr/spinellis/umlgraph/doclet/Options.java | 6 ++++-- src/gr/spinellis/umlgraph/doclet/StringUtil.java | 6 ++++-- src/gr/spinellis/umlgraph/doclet/UmlGraph.java | 6 ++++-- src/org/umlgraph/doclet/ClassGraph.java | 6 ++++-- src/org/umlgraph/doclet/ClassInfo.java | 6 ++++-- src/org/umlgraph/doclet/Options.java | 6 ++++-- src/org/umlgraph/doclet/StringUtil.java | 6 ++++-- src/org/umlgraph/doclet/UmlGraph.java | 6 ++++-- 10 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/gr/spinellis/umlgraph/doclet/ClassGraph.java b/src/gr/spinellis/umlgraph/doclet/ClassGraph.java index 88c147f..dec4bfe 100644 --- a/src/gr/spinellis/umlgraph/doclet/ClassGraph.java +++ b/src/gr/spinellis/umlgraph/doclet/ClassGraph.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/gr/spinellis/umlgraph/doclet/ClassInfo.java b/src/gr/spinellis/umlgraph/doclet/ClassInfo.java index 88c147f..dec4bfe 100644 --- a/src/gr/spinellis/umlgraph/doclet/ClassInfo.java +++ b/src/gr/spinellis/umlgraph/doclet/ClassInfo.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/gr/spinellis/umlgraph/doclet/Options.java b/src/gr/spinellis/umlgraph/doclet/Options.java index 88c147f..dec4bfe 100644 --- a/src/gr/spinellis/umlgraph/doclet/Options.java +++ b/src/gr/spinellis/umlgraph/doclet/Options.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/gr/spinellis/umlgraph/doclet/StringUtil.java b/src/gr/spinellis/umlgraph/doclet/StringUtil.java index 88c147f..dec4bfe 100644 --- a/src/gr/spinellis/umlgraph/doclet/StringUtil.java +++ b/src/gr/spinellis/umlgraph/doclet/StringUtil.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/gr/spinellis/umlgraph/doclet/UmlGraph.java b/src/gr/spinellis/umlgraph/doclet/UmlGraph.java index 88c147f..dec4bfe 100644 --- a/src/gr/spinellis/umlgraph/doclet/UmlGraph.java +++ b/src/gr/spinellis/umlgraph/doclet/UmlGraph.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/org/umlgraph/doclet/ClassGraph.java b/src/org/umlgraph/doclet/ClassGraph.java index 88c147f..dec4bfe 100644 --- a/src/org/umlgraph/doclet/ClassGraph.java +++ b/src/org/umlgraph/doclet/ClassGraph.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/org/umlgraph/doclet/ClassInfo.java b/src/org/umlgraph/doclet/ClassInfo.java index 88c147f..dec4bfe 100644 --- a/src/org/umlgraph/doclet/ClassInfo.java +++ b/src/org/umlgraph/doclet/ClassInfo.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/org/umlgraph/doclet/Options.java b/src/org/umlgraph/doclet/Options.java index 88c147f..dec4bfe 100644 --- a/src/org/umlgraph/doclet/Options.java +++ b/src/org/umlgraph/doclet/Options.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/org/umlgraph/doclet/StringUtil.java b/src/org/umlgraph/doclet/StringUtil.java index 88c147f..dec4bfe 100644 --- a/src/org/umlgraph/doclet/StringUtil.java +++ b/src/org/umlgraph/doclet/StringUtil.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " + diff --git a/src/org/umlgraph/doclet/UmlGraph.java b/src/org/umlgraph/doclet/UmlGraph.java index 88c147f..dec4bfe 100644 --- a/src/org/umlgraph/doclet/UmlGraph.java +++ b/src/org/umlgraph/doclet/UmlGraph.java @@ -643,8 +643,10 @@ class ClassGraph { Tag tags[] = from.tags(tagname); for (int i = 0; i < tags.length; i++) { String t[] = StringUtil.tokenize(tags[i].text()); // l-src label l-dst target - if (t.length != 4) - System.err.println("Expected four fields: " + tags[i].text()); + if (t.length != 4) { + System.err.println("Error in " + from + "\n" + tagname + " expectes four fields (l-src label l-dst target): " + tags[i].text()); + return; + } opt.w.println("\t// " + from + " " + tagname + " " + t[3]); opt.w.println("\t" + name + " -> " + name(t[3]) + " [" + "taillabel=\"" + t[0] + "\", " +