diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
index 26d5d18deb5661b65e57263e34652a19e496620d..8e8619a498d8dada3400bf001a9c4af0cbeba42c 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
@@ -176,6 +176,17 @@ public class SummaryListener implements RateSummaryListener {
                 rrdFile.delete();
         } catch (IOException ioe) {
             _log.error("Error starting RRD for stat " + baseName, ioe);
+        } catch (NoSuchMethodError nsme) {
+            // Covariant fail Java 8/9/10
+            // java.lang.NoSuchMethodError: java.nio.MappedByteBuffer.position(I)Ljava/nio/MappedByteBuffer;
+            // see e.g. https://jira.mongodb.org/browse/JAVA-2559
+            _log.error("Error starting RRD for stat " + baseName, nsme);
+            String s = "Error:" +
+                       "\nCompiler JDK mismatch with JRE version " + System.getProperty("java.version") +
+                       " and no bootclasspath specified when building." +
+                       "\nContact packager.";
+            _log.log(Log.CRIT, s);
+            System.out.println(s);
         } catch (Throwable t) {
             _log.error("Error starting RRD for stat " + baseName, t);
         }