HashedErrorHandler implements CycleErrorHandler<T, R> { public final synchronized void resetAllClassHandlers() { handlers.clear(); }  @java.lang.SafeVarargs final void setGroup(String groupName, Class<? extends T>... exceptions); Set<Class<? extends T>> getGroup(String groupName); @java.lang.SafeVarargs final synchronized void setHandlerForClasses(
            CycleErrorHandler<T, R> errorHandler,
            Class<? extends T>... errorClasses
    ); final synchronized void setHandlerForGroup(String groupName, CycleErrorHandler<T, R> errorHandler); final synchronized void setHandlerForPattern(
            String pattern,
            CycleErrorHandler<T, R> errorHandler
    ); final synchronized void resetAllClassHandlers(); final synchronized Map<Class<? extends T>, CycleErrorHandler<T, R>> getHandlers(); @java.lang.SafeVarargs final synchronized void addValidClasses(Class<? extends T>... validClasses); Set<Class<? extends T>> getValidClasses(); HashedErrorHandler<T, R> setDefaultHandler(CycleErrorHandler<T, R> errorHandler); HashedErrorHandler<T, R> setUpperBound(Class<? extends T> upperBound); @Override R handleError(long cycle, T throwable, String errMsg); List<String> getGroupNames();  }
@Test public void testResetAllClassHandlers() { handler.setGroup("some", IndexOutOfBoundsException.class, ArrayIndexOutOfBoundsException.class); handler.setHandlerForGroup("some", CycleErrorHandlers.rethrow("Octothorpe and Umlaut are friends.")); assertThat(handler.getHandlers()).hasSize(2); handler.resetAllClassHandlers(); assertThat(handler.getHandlers()).hasSize(0); }