Index: src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 17218)
+++ src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(working copy)
@@ -184,8 +184,11 @@
     private void checkGeometryAndRoles(Relation r, Multipolygon polygon) {
         int oldErrorsSize = errors.size();
 
+        Map<Long, RelationMember> wayMap = r.getMembers().stream()
+                .filter(RelationMember::isWay)
+                .collect(Collectors.toMap(mem -> mem.getWay().getUniqueId(), mem -> mem, (a, b) -> b));
         List<Node> openNodes = polygon.getOpenEnds();
-        if (!openNodes.isEmpty()) {
+        if (!openNodes.isEmpty() || wayMap.isEmpty()) {
             errors.add(TestError.builder(this, Severity.ERROR, NON_CLOSED_WAY)
                     .message(tr("Multipolygon is not closed"))
                     .primitives(combineRelAndPrimitives(r, openNodes))
@@ -193,9 +196,6 @@
                     .build());
         }
 
-        Map<Long, RelationMember> wayMap = r.getMembers().stream()
-                .filter(RelationMember::isWay)
-                .collect(Collectors.toMap(mem -> mem.getWay().getUniqueId(), mem -> mem, (a, b) -> b));
         // duplicate members were checked before
         if (wayMap.isEmpty())
             return;
