Program: 63069
Project: 63069
Buggy source:
/** 
 * 获取所有的interceptor
 * @return interceptor集合
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.interceptor.WeixinMessageInterceptor
 */
public WeixinMessageInterceptor[] getMessageInterceptors() throws WeixinException {
  if (this.messageInterceptors == null) {
    if (this.messageInterceptorPackages != null) {
      List<Class<?>> messageInterceptorClass=new LinkedList<Class<?>>();
      for (      String packageName : messageInterceptorPackages) {
        messageInterceptorClass.addAll(ClassUtil.getClasses(packageName));
      }
      if (beanFactory != null) {
        for (        Class<?> clazz : messageInterceptorClass) {
          messageInterceptorList.add((WeixinMessageInterceptor)beanFactory.getBean(clazz));
        }
      }
 else {
        for (        Class<?> clazz : messageInterceptorClass) {
          if (clazz.isInterface() || Modifier.isAbstract(clazz.getModifiers())) {
            continue;
          }
          try {
            Constructor<?> ctor=clazz.getDeclaredConstructor();
            ReflectionUtil.makeAccessible(ctor);
            messageInterceptorList.add((WeixinMessageInterceptor)ctor.newInstance((Object[])null));
          }
 catch (          Exception ex) {
            throw new WeixinException(clazz.getName() + "String_Node_Str",ex);
          }
        }
      }
    }
    if (this.messageInterceptorList != null && !this.messageInterceptorList.isEmpty()) {
      this.messageInterceptors=this.messageInterceptorList.toArray(new WeixinMessageInterceptor[this.messageInterceptorList.size()]);
    }
  }
  return this.messageInterceptors;
}

Fixed version (ground truth):
/** 
 * 获取所有的interceptor
 * @return interceptor集合
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.interceptor.WeixinMessageInterceptor
 */
public WeixinMessageInterceptor[] getMessageInterceptors() throws WeixinException {
  if (this.messageInterceptors == null) {
    if (this.messageInterceptorPackages != null) {
      List<Class<?>> messageInterceptorClass=new LinkedList<Class<?>>();
      for (      String packageName : messageInterceptorPackages) {
        messageInterceptorClass.addAll(ClassUtil.getClasses(packageName));
      }
      if (beanFactory != null) {
        for (        Class<?> clazz : messageInterceptorClass) {
          messageInterceptorList.add(0,(WeixinMessageInterceptor)beanFactory.getBean(clazz));
        }
      }
 else {
        for (        Class<?> clazz : messageInterceptorClass) {
          if (clazz.isInterface() || Modifier.isAbstract(clazz.getModifiers())) {
            continue;
          }
          try {
            Constructor<?> ctor=clazz.getDeclaredConstructor();
            ReflectionUtil.makeAccessible(ctor);
            messageInterceptorList.add(0,(WeixinMessageInterceptor)ctor.newInstance((Object[])null));
          }
 catch (          Exception ex) {
            throw new WeixinException(clazz.getName() + "String_Node_Str",ex);
          }
        }
      }
    }
    if (this.messageInterceptorList != null && !this.messageInterceptorList.isEmpty()) {
      this.messageInterceptors=this.messageInterceptorList.toArray(new WeixinMessageInterceptor[this.messageInterceptorList.size()]);
    }
  }
  return this.messageInterceptors;
}