docs: public void merge(PersistenceUnitRef pUnitRef) throws InjectionException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "merge : " + pUnitRef);
  
          PersistenceUnit thisPu = getAnnotation();
          String thisUnitName = thisPu.unitName();
          String mergedUnitName = pUnitRef.getPersistenceUnitName();
  
          if (isTraceOn && tc.isDebugEnabled())
          {
              Tr.debug(tc, "new=" + getJndiName() + ":" + mergedUnitName);
              Tr.debug(tc, "cur=" + getJndiName() + ":" + thisUnitName);
          }
  
          // Merge the persistence unit name. Either one must be not set or they
          // must match exactly.
          if (thisUnitName == null || thisUnitName.equals(""))
          {
              if (mergedUnitName != null)
              {
                  setAnnotation(newPersistenceUnit(getJndiName(),
                                                   mergedUnitName));
                  ivPuId.setPuName(mergedUnitName);
                  ivPuFromXML = true; // d662814
              }
          }
          else if (mergedUnitName != null && !mergedUnitName.equals(""))
          {
              if (!thisUnitName.equals(mergedUnitName))
              {
                  Tr.error(tc, "CONFLICTING_XML_VALUES_CWWJP0041E",
                           ivJ2eeName.getModule(),
                           ivJ2eeName.getApplication(),
                           "persistence-unit-name",
                           "persistence-unit-ref",
                           "persistence-unit-ref-name",
                           getJndiName(),
                           thisUnitName,
                           mergedUnitName);
                  String exMsg = "CWWJP0041E: The " + ivJ2eeName.getModule() +
                                 " module of the " + ivJ2eeName.getApplication() +
                                 " application has conflicting configuration data in the XML" +
                                 " deployment descriptor. Conflicting " + "persistence-unit-name" +
                                 " element values exist for multiple " + "persistence-unit-ref" +
                                 " elements with the same " + "persistence-unit-ref-name" +
                                 " element value : " + getJndiName() + ". The conflicting " +
                                 "persistence-unit-name" + " element values are " + thisUnitName +
                                 " and " + mergedUnitName + ".";
                  throw new InjectionConfigurationException(exMsg);
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "merge : " + this);
      }