Index: /trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java	(revision 2957)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java	(revision 2958)
@@ -16,6 +16,8 @@
 public class DatasetConsistencyTest {
 
+    private static final int MAX_ERRORS = 100;
     private final DataSet dataSet;
     private final PrintWriter writer;
+    private int errorCount;
 
     public DatasetConsistencyTest(DataSet dataSet, Writer writer) {
@@ -25,8 +27,11 @@
 
     private void printError(String type, String message, Object... args) {
-        writer.println("[" + type + "] " + String.format(message, args));
+        errorCount++;
+        if (errorCount <= MAX_ERRORS) {
+            writer.println("[" + type + "] " + String.format(message, args));
+        }
     }
 
-    private void checkReferrers() {
+    public void checkReferrers() {
         for (Way way:dataSet.getWays()) {
             if (!way.isDeleted()) {
@@ -50,5 +55,5 @@
     }
 
-    private void checkCompleteWaysWithIncompleteNodes() {
+    public void checkCompleteWaysWithIncompleteNodes() {
         for (Way way:dataSet.getWays()) {
             if (way.isUsable()) {
@@ -62,5 +67,5 @@
     }
 
-    private void checkCompleteNodesWithoutCoordinates() {
+    public void checkCompleteNodesWithoutCoordinates() {
         for (Node node:dataSet.getNodes()) {
             if (!node.isIncomplete() && (node.getCoor() == null || node.getEastNorth() == null)) {
@@ -70,5 +75,5 @@
     }
 
-    private void searchNodes() {
+    public void searchNodes() {
         for (Node n:dataSet.getNodes()) {
             if (!n.isIncomplete() && !n.isDeleted()) {
@@ -82,7 +87,7 @@
     }
 
-    private void searchWays() {
+    public void searchWays() {
         for (Way w:dataSet.getWays()) {
-            if (!w.isIncomplete() && !w.isDeleted() && !dataSet.searchWays(w.getBBox()).contains(w)) {
+            if (!w.isIncomplete() && !w.isDeleted() && w.getNodesCount() >= 2 && !dataSet.searchWays(w.getBBox()).contains(w)) {
                 printError("SEARCH WAYS", "%s not found using Dataset.searchWays()", w);
             }
@@ -102,5 +107,5 @@
     }
 
-    private void referredPrimitiveNotInDataset() {
+    public void referredPrimitiveNotInDataset() {
         for (Way way:dataSet.getWays()) {
             for (Node node:way.getNodes()) {
@@ -117,5 +122,5 @@
 
 
-    private void checkZeroNodesWays() {
+    public void checkZeroNodesWays() {
         for (Way way:dataSet.getWays()) {
             if (way.isUsable() && way.getNodesCount() == 0) {
@@ -136,4 +141,7 @@
             referredPrimitiveNotInDataset();
             checkZeroNodesWays();
+            if (errorCount > MAX_ERRORS) {
+                writer.println((errorCount - MAX_ERRORS) + " more...");
+            }
         } catch (Exception e) {
             writer.println("Exception during dataset integrity test:");
