code: public static Method getPropGetMethod(final Class<?> cls, final String propName) {
          Map<String, Method> propGetMethodMap = entityPropGetMethodPool.get(cls);
  
          if (propGetMethodMap == null) {
              loadPropGetSetMethodList(cls);
              propGetMethodMap = entityPropGetMethodPool.get(cls);
          }
  
          Method method = propGetMethodMap.get(propName);
  
          if (method == null) {
              synchronized (entityDeclaredPropGetMethodPool) {
                  Map<String, Method> getterMethodList = getPropGetMethodList(cls);
  
                  for (String key : getterMethodList.keySet()) {
                      if (isPropName(cls, propName, key)) {
                          method = getterMethodList.get(key);
  
                          break;
                      }
                  }
  
                  if ((method == null) && !propName.equalsIgnoreCase(formalizePropName(propName))) {
                      method = getPropGetMethod(cls, formalizePropName(propName));
                  }
  
                  // set method mask to avoid query next time.
                  if (method == null) {
                      method = METHOD_MASK;
                  }
  
                  propGetMethodMap.put(propName, method);
              }
          }
  
          return (method == METHOD_MASK) ? null : method;
      }
docs: Returns the property get method declared in the specified {@code cls}
  with the specified property name {@code propName}.
  {@code null} is returned if no method is found.
  
  Call registerXMLBindingClassForPropGetSetMethod first to retrieve the property
  getter/setter method for the class/bean generated/wrote by JAXB
  specificatio
  
  @param cls
  @param propName
  @return