code: public static <T> Collection<EnhancedAnnotatedMethod<?, ? super T>> filterMethods(final Collection<EnhancedAnnotatedMethod<?, ? super T>> methods) {
          return methods.stream().filter(m -> !m.getJavaMember().isBridge() && !m.getJavaMember().isSynthetic()).collect(Collectors.toList());
      }
docs: Oracle JDK 8 compiler (unlike prev versions) generates bridge methods which have method and parameter annotations copied from the original method.
  However such methods should not become observers, producers, disposers, initializers and lifecycle callbacks.
  
  Moreover, JDK8u60 propagates parameter annotations to the synthetic method generated for a lambda. Therefore, we should also ignore synthetic methods.
  
  @param methods
  @return a collection with bridge and synthetic methods filtered out
  @see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6695379
  @see https://issues.jboss.org/browse/WELD-2019