code: private static Type fix(Type t) {
          if(!(t instanceof GenericArrayType))
              return t;
  
          GenericArrayType gat = (GenericArrayType) t;
          if(gat.getGenericComponentType() instanceof Class) {
              Class c = (Class) gat.getGenericComponentType();
              return Array.newInstance(c,0).getClass();
          }
  
          return t;
      }
docs: JDK 5.0 has a bug of creating {@link GenericArrayType} where it shouldn't.
  fix that manually to work around the problem.
  
  See bug 6202725.