(That's okay for a follow-up. I'm just opposed to mixing exception types, since this looks quite nasty:

```
+      } catch (ModuleValidationException e) {
+        error("Graph validation failed: " + e.getMessage(), e.source);
+        continue;
       } catch (IllegalStateException e) {
```