docs: protected <T> T mergeAnnotationValue(T oldValue,
                                           boolean oldValueXML,
                                           T newValue,
                                           String elementName,
                                           T defaultValue) throws InjectionConfigurationException {
          if (newValue.equals(defaultValue) || oldValueXML) { // d663356
              return oldValue;
          }
  
          if (oldValue == null ? isComplete() : !newValue.equals(oldValue)) {
              mergeError(oldValue, newValue, false, elementName, false, elementName);
              return oldValue;
          }
  
          return newValue;
      }