Index: /trunk/scripts/SyncEditorLayerIndex.groovy
===================================================================
--- /trunk/scripts/SyncEditorLayerIndex.groovy	(revision 13770)
+++ /trunk/scripts/SyncEditorLayerIndex.groovy	(revision 13771)
@@ -328,20 +328,23 @@
             def shapes = ""
             def sep = "\n            "
-            for(def s: getShapes(e)) {
-                shapes += "            <shape>"
-                def i = 0
-                for(def p: s.getPoints()) {
-                    def lat = p.getLat()
-                    def lon = p.getLon()
-                    if(lat > maxlat) maxlat = lat
-                    if(lon > maxlon) maxlon = lon
-                    if(lat < minlat) minlat = lat
-                    if(lon < minlon) minlon = lon
-                    if(!(i++%3)) {
-                        shapes += sep + "    "
-                    }
-                    shapes += "<point lat='${df.format(lat)}' lon='${df.format(lon)}'/>"
-                }
-                shapes += sep + "</shape>\n"
+            try {
+                for(def s: getShapes(e)) {
+                    shapes += "            <shape>"
+                    def i = 0
+                    for(def p: s.getPoints()) {
+                        def lat = p.getLat()
+                        def lon = p.getLon()
+                        if(lat > maxlat) maxlat = lat
+                        if(lon > maxlon) maxlon = lon
+                        if(lat < minlat) minlat = lat
+                        if(lon < minlon) minlon = lon
+                        if(!(i++%3)) {
+                            shapes += sep + "    "
+                        }
+                        shapes += "<point lat='${df.format(lat)}' lon='${df.format(lon)}'/>"
+                    }
+                    shapes += sep + "</shape>\n"
+                }
+            } catch(IllegalArgumentException) {
             }
             if(shapes) {
@@ -696,16 +699,22 @@
             def e = eliUrls.get(url)
             def num = 1
-            def s = getShapes(e)
-            for (def shape : s) {
-                def p = shape.getPoints()
-                if(!p[0].equals(p[p.size()-1]) && !options.nomissingeli) {
-                    myprintln "+++ ELI shape $num unclosed: ${getDescription(e)}"
-                }
-                for (def nump = 1; nump < p.size(); ++nump) {
-                    if (p[nump-1] == p[nump]) {
-                        myprintln "+++ ELI shape $num double point at ${nump-1}: ${getDescription(e)}"
-                    }
-                }
-                ++num
+            def s
+            try {
+                s = getShapes(e)
+                for (def shape : s) {
+                    def p = shape.getPoints()
+                    if(!p[0].equals(p[p.size()-1]) && !options.nomissingeli) {
+                        myprintln "+++ ELI shape $num unclosed: ${getDescription(e)}"
+                    }
+                    for (def nump = 1; nump < p.size(); ++nump) {
+                        if (p[nump-1] == p[nump]) {
+                            myprintln "+++ ELI shape $num double point at ${nump-1}: ${getDescription(e)}"
+                        }
+                    }
+                    ++num
+                }
+            } catch(IllegalArgumentException err) {
+                def desc = getDescription(e)
+                myprintln("* Invalid data in ELI geometry for $desc: ${err.getMessage()}") 
             }
             if (!josmUrls.containsKey(url)) {
@@ -735,5 +744,5 @@
                             def ept = ep[nump]
                             def jpt = jp[nump]
-                            if(Math.abs(ept.getLat()-jpt.getLat()) > 0.000001 || Math.abs(ept.getLon()-jpt.getLon()) > 0.000001) {
+                            if(Math.abs(ept.getLat()-jpt.getLat()) > 0.00001 || Math.abs(ept.getLon()-jpt.getLon()) > 0.00001) {
                                 myprintln "* Different coordinate for point ${nump+1} of shape ${nums+1}: ${getDescription(j)}"
                                 nump = ep.size()
