code: protected Integer mergeAnnotationInteger(Integer oldValue,
                                               boolean oldValueXML,
                                               int newValue,
                                               String elementName,
                                               int defaultValue,
                                               Map<Integer, String> valueNames) throws InjectionConfigurationException {
          if (newValue == defaultValue) {
              return oldValue;
          }
  
          if (oldValueXML) {
              return oldValue;
          }
  
          if (oldValue == null ? isComplete() : !oldValue.equals(newValue)) {
              Object oldValueName = valueNames == null ? oldValue : valueNames.get(oldValue);
              Object newValueName = valueNames == null ? newValue : valueNames.get(newValue);
              mergeError(oldValueName, newValueName, false, elementName, false, elementName);
              return oldValue;
          }
  
          return newValue;
      }
docs: Merges the value of an integer annotation value.
  
  <p>If an error occurs, {@link #mergeError} will be called, which
  requires {@link #getJNDIEnvironmentRefType} to be defined.
  
  @param oldValue the old value
  @param oldValueXML true if the old value was set by XML
  @param newValue the new value
  @param elementName the annotation element name
  @param defaultValue the default value as specified in the annotation
  @return the merged value
  @throws InjectionConfigurationException if an error occurs