Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 3315)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 3316)
@@ -268,5 +268,4 @@
         allPrimitives.remove(primitive);
         primitive.setDataset(null);
-        errors.remove(primitive);
         firePrimitivesRemoved(Collections.singletonList(primitive), false);
     }
@@ -906,36 +905,3 @@
         allPrimitives.clear();
     }
-
-    // TODO Should be completely part of validator
-    private Map<OsmPrimitive, List<String>> errors = new HashMap<OsmPrimitive, List<String>>();
-
-    public void addError(OsmPrimitive primitive, String error) {
-        List<String> perrors = errors.get(primitive);
-        if (perrors == null) {
-            perrors = new ArrayList<String>();
-        }
-        perrors.add(error);
-        errors.put(primitive, perrors);
-    }
-
-    /**
-     * Replies the list of errors registered for this primitive.
-     *
-     * @param primitive the primitive for which errors are queried
-     * @return the list of errors. Never null.
-     * @deprecated should be moved to the validator plugin
-     */
-    @Deprecated
-    public List<String> getErrors(OsmPrimitive primitive) {
-        List<String> ret = errors.get(primitive);
-        if (ret == null) {
-            ret = Collections.emptyList();
-        }
-        return ret;
-    }
-
-    public void clearErrors()
-    {
-        errors.clear();
-    }
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3315)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3316)
@@ -177,7 +177,4 @@
             {
                 painter.drawArea(getPolygon(w), (data.isSelected(w) ? paintSettings.getSelectedColor() : areaStyle.color), painter.getAreaName(w));
-                if(!w.isClosed()) {
-                    putError(w, tr("Area style way is not closed."), true);
-                }
             }
             areaStyle.getLineStyle().paintPrimitive(w, paintSettings, painter, data.isSelected(w), false);
@@ -256,23 +253,12 @@
 
                     if("from".equals(m.getRole())) {
-                        if(fromWay != null) {
-                            putError(r, tr("More than one \"from\" way found."), true);
-                        } else {
+                        if(fromWay == null)
                             fromWay = w;
-                        }
                     } else if("to".equals(m.getRole())) {
-                        if(toWay != null) {
-                            putError(r, tr("More than one \"to\" way found."), true);
-                        } else {
+                        if(toWay == null)
                             toWay = w;
-                        }
                     } else if("via".equals(m.getRole())) {
-                        if(via != null) {
-                            putError(r, tr("More than one \"via\" found."), true);
-                        } else {
+                        if(via == null)
                             via = w;
-                        }
-                    } else {
-                        putError(r, tr("Unknown role ''{0}''.", m.getRole()), true);
                     }
                 }
@@ -280,32 +266,12 @@
                 {
                     Node n = m.getNode();
-                    if("via".equals(m.getRole()))
-                    {
-                        if(via != null) {
-                            putError(r, tr("More than one \"via\" found."), true);
-                        } else {
-                            via = n;
-                        }
-                    } else {
-                        putError(r, tr("Unknown role ''{0}''.", m.getRole()), true);
-                    }
-                } else {
-                    putError(r, tr("Unknown member type for ''{0}''.", m.getMember().getDisplayName(DefaultNameFormatter.getInstance())), true);
-                }
-            }
-        }
-
-        if (fromWay == null) {
-            putError(r, tr("No \"from\" way found."), true);
+                    if("via".equals(m.getRole()) && via == null)
+                        via = n;
+                }
+            }
+        }
+
+        if (fromWay == null || toWay == null || via == null)
             return;
-        }
-        if (toWay == null) {
-            putError(r, tr("No \"to\" way found."), true);
-            return;
-        }
-        if (via == null) {
-            putError(r, tr("No \"via\" node or way found."), true);
-            return;
-        }
 
         Node viaNode;
@@ -314,9 +280,5 @@
             viaNode = (Node) via;
             if(!fromWay.isFirstLastNode(viaNode)) {
-                putError(r, tr("The \"from\" way does not start or end at a \"via\" node."), true);
                 return;
-            }
-            if(!toWay.isFirstLastNode(viaNode)) {
-                putError(r, tr("The \"to\" way does not start or end at a \"via\" node."), true);
             }
         }
@@ -349,9 +311,5 @@
                 viaNode = lastNode;
             } else {
-                putError(r, tr("The \"from\" way does not start or end at the \"via\" way."), true);
                 return;
-            }
-            if(!toWay.isFirstLastNode(viaNode == firstNode ? lastNode : firstNode)) {
-                putError(r, tr("The \"to\" way does not start or end at the \"via\" way."), true);
             }
         }
@@ -447,5 +405,4 @@
 
         if (nodeStyle == null) {
-            putError(r, tr("Style for restriction {0} not found.", r.get("restriction")), true);
             return;
         }
@@ -520,6 +477,4 @@
                     if(wayStyle.equals(innerStyle))
                     {
-                        putError(r, tr("Style for inner way ''{0}'' equals multipolygon.",
-                                wInner.getDisplayName(DefaultNameFormatter.getInstance())), false);
                         if(!data.isSelected(r)) {
                             wInner.mappaintDrawnAreaCode = paintid;
@@ -545,10 +500,4 @@
                 else
                 {
-                    if(outerStyle instanceof AreaElemStyle
-                            && !wayStyle.equals(outerStyle))
-                    {
-                        putError(r, tr("Style for outer way ''{0}'' mismatches.",
-                                wOuter.getDisplayName(DefaultNameFormatter.getInstance())), true);
-                    }
                     if(data.isSelected(r))
                     {
@@ -660,7 +609,4 @@
         this.painter = new MapPainter(paintSettings, g, inactive, nc, virtual, dist, circum);
 
-        data.clearErrors();
-
-
         if (fillAreas > dist && styles != null && styles.hasAreas()) {
             Collection<Way> noAreaWays = new LinkedList<Way>();
@@ -743,9 +689,4 @@
     }
 
-    public void putError(OsmPrimitive p, String text, boolean isError)
-    {
-        data.addError(p, isError ? tr("Error: {0}", text) : tr("Warning: {0}", text));
-    }
-
     public void setGraphics(Graphics2D g) {
         this.g = g;
