Better reporting of incorrectly formatted data lines
diff --git a/src/main/jbake/templates/downloads.tpl b/src/main/jbake/templates/downloads.tpl
index f7ffb2a..ebf802d 100644
--- a/src/main/jbake/templates/downloads.tpl
+++ b/src/main/jbake/templates/downloads.tpl
@@ -12,6 +12,8 @@
 // To convert from the old svn downloads.list ust
 //    while read l; do echo "  \"$l\","; done < content/downloads.list
 // ------------------------------------------------------------------------------------------------
+U = new includes.U(config)
+def PIPE_SEP = "\\|"
 def launchpadVersion="11"
 
 def slingIDETooling=[
@@ -366,7 +368,7 @@
 							tbody() {
 								slingApplication.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 6)
 										td(data[0])
 										td(data[4])
 										td(){
@@ -388,7 +390,7 @@
 							tbody() {
 								slingIDETooling.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 3)
 										td(data[0])
 										td(data[2])
 										td(data[3])
@@ -407,7 +409,7 @@
 							tbody() {
 								bundles.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 5)
 										td(data[0])
 										td(data[2])
 										def artifact = data[1]
@@ -434,7 +436,7 @@
 							tbody() {
 								mavenPlugins.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 4)
 										td(data[0])
 										td(data[2])
 										def artifact = data[1]
@@ -460,7 +462,7 @@
 							tbody() {
 								bndPlugins.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 4)
 										td(data[0])
 										td(data[2])
 										def artifact = data[1]
@@ -486,7 +488,7 @@
 							tbody() {
 								deprecated.each { line ->
 									tr() {
-										def data = line.split("\\|")
+										def data = U.splitLine(line, PIPE_SEP, 4)
 										td(data[0])
 										td(data[1])
 										td(data[3])
diff --git a/src/main/jbake/templates/includes/U.groovy b/src/main/jbake/templates/includes/U.groovy
index bce03c6..9a12901 100644
--- a/src/main/jbake/templates/includes/U.groovy
+++ b/src/main/jbake/templates/includes/U.groovy
@@ -9,6 +9,19 @@
         def once = new runonce.OncePerBuild(jbakeConfig)
     }
 
+    def splitLine(line, separator, expectedParts) {
+        def result = line.split(separator)
+        if(result.length < expectedParts) {
+            throw new Exception(
+                "Expected " + expectedParts
+                + " parts separated with " + separator
+                + ", but got " + result.length
+                + "  in line: " + line
+            )
+        }
+        return result
+    }
+
     def processBody(content, config) {
     	def str = content.body