public FilterFileSystem() {
  }
@Test
  public void testFilterFileSystem() throws Exception {
    int errors = 0;
    for (Method m : FileSystem.class.getDeclaredMethods()) {
      if (Modifier.isStatic(m.getModifiers()) ||
          Modifier.isPrivate(m.getModifiers()) ||
          Modifier.isFinal(m.getModifiers())) {
        continue;
      }
      try {
        MustNotImplement.class.getMethod(m.getName(), m.getParameterTypes());
        try {
          FilterFileSystem.class.getDeclaredMethod(m.getName(),
              m.getParameterTypes());
          LOG.error("FilterFileSystem MUST NOT implement " + m);
          errors++;
        } catch (NoSuchMethodException ex) {
          // Expected
        }
      } catch (NoSuchMethodException exc) {
        try{
          FilterFileSystem.class.getDeclaredMethod(m.getName(), m.getParameterTypes());
        } catch(NoSuchMethodException exc2){
          LOG.error("FilterFileSystem MUST implement " + m);
          errors++;
        }
      }
    }
    assertTrue((errors + " methods were not overridden correctly - see" +
        " log"), errors <= 0);
  }