docs: private void processXMLMsgDestRefs(List<? extends MessageDestinationRef> msgDestRefs)
                      throws InjectionException //449021
      {
          for (MessageDestinationRef msgDestRef : msgDestRefs)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "processing : " + msgDestRef);
  
              //If XML has previously been read and an injection binding with the same
              //jndi name has been created, get the current injection binding and merge
              //the new env entry into it.
              String jndiName = msgDestRef.getName();
              InjectionBinding<Resource> injectionBinding = ivAllAnnotationsCollection.get(jndiName);
              if (injectionBinding != null) {
                  ((ResourceInjectionBinding) injectionBinding).merge(msgDestRef);
              }
              else
              {
  
                  Class<?> injectionType = null; // d367834.10
                  String targetName = null;
                  String targetClassName = null;
  
                  //The MessageDestinationType parameter is "optional" according to spec 16.9.1.3
                  String msgDestType = msgDestRef.getType();
                  String description = getDescription(msgDestRef);
  
                  String mappedName = msgDestRef.getMappedName();
                  String lookup = msgDestRef.getLookupName(); // F743-21028.4
                  if (lookup != null) {
                      lookup = lookup.trim();
                  }
  
                  List<InjectionTarget> targets = msgDestRef.getInjectionTargets();
  
                  try {
                      injectionType = loadTypeClass(msgDestType, jndiName); // d476227 d476227.1
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          Tr.debug(tc, "targetType : " + injectionType);
  
                      Resource resourceAnnotation =
                                      new ResourceImpl(jndiName,
                                                      injectionType == null ? Object.class : injectionType, // d701306.1
                                                      mappedName,
                                                      description,
                                                      lookup); // F743-21028.4
                      if (msgDestRef.getLink() != null) {
                          injectionBinding = new ResourceInjectionBinding(resourceAnnotation, msgDestRef, lookup, ivNameSpaceConfig);
                          addInjectionBinding(injectionBinding);
                      }
                      else {
                          injectionBinding = new ResourceInjectionBinding
                                          (resourceAnnotation,
                                                          msgDestType,
                                                          lookup,
                                                          ResourceXMLType.MESSAGE_DESTINATION_REF,
                                                          ivNameSpaceConfig); // d479669
                          addInjectionBinding(injectionBinding);
                      }
  
                      // Support multiple injection targets
                      if (!targets.isEmpty())
                      {
                          for (InjectionTarget target : targets)
                          {
                              targetClassName = target.getInjectionTargetClassName();
                              targetName = target.getInjectionTargetName();
  
                              // Would have been nice if an exception were thrown
                              // here if the type was NOT one of the supported types
                              // for message-dest-ref, but since that has not been done
                              // historically, it cannot be done now without the
                              // possibility of breaking an existing application.
  
                              injectionBinding.addInjectionTarget(injectionType, targetName, targetClassName);
                          }
                      }
                  } catch (Exception e) {
                      FFDCFilter.processException(e, CLASS_NAME + ".processXMLMsgDestRefs",
                                                  "1077", this, new Object[] { msgDestRef, jndiName, injectionBinding, targetName, targetClassName });
                      InjectionException icex;
                      icex = new InjectionException("Failed to process the XML for " + "message-destination-ref " + msgDestRef, e); //d645991
                      Tr.error(tc, "FAILED_TO_PROCESS_XML_CWNEN0032E", "message-destination-ref", msgDestRef); //d645991
                      throw icex;
                  }
              }
          }
      }