docs: static JPAPuId[] getExtendedContextPuIds(Collection<InjectionBinding<?>> injectionBindings,
                                               String ejbName,
                                               Set<String> persistenceRefNames,
                                               List<Object> bindingList)
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "getExtendedContextPuIds : " +
                           ((injectionBindings != null)
                                           ? ("<" + injectionBindings.size() + "> :" + injectionBindings)
                                           : "No Injection Bindings"));
  
          JPAPuId[] rtnValue = NoPuIds;
          if (injectionBindings != null && injectionBindings.size() > 0)
          {
              // Build a set of extended persistence contexts for the 'bindings'.
              // A set is used to eliminate duplicate JPAPuIds.
              HashSet<JPAPuId> extendedPuIds = new HashSet<JPAPuId>();
              for (InjectionBinding<?> binding : injectionBindings)
              {
                  if (binding instanceof JPAPCtxtInjectionBinding)
                  {
                      JPAPCtxtInjectionBinding pcBinding = (JPAPCtxtInjectionBinding) binding;
                      if (pcBinding.containsComponent(ejbName)) // F743-30682
                      {
                          if (isTraceOn && tc.isDebugEnabled())
                              Tr.debug(tc, "extended persistence-context-ref name=" + pcBinding.getJndiName() +
                                           " contains component=" + ejbName);
  
                          if (pcBinding.isExtendedType())
                          {
                              // The unitName in the user-define PersistenceContext annotation may not be
                              // defined, update the puId with a valid and unique persistence unit name.
                              JPAPuId puId = pcBinding.ivPuId;
                              String puName = puId.getPuName();
                              if (puName == null || puName.length() == 0)
                              {
                                  //F743-16027 - using JPAAccessor to get JPAComponent, rather than using cached (possibly stale) static reference
                                  JPAPUnitInfo puInfo = ((AbstractJPAComponent) JPAAccessor.getJPAComponent()).findPersistenceUnitInfo(puId); // F743-18776
                                  if (puInfo != null)
                                  {
                                      puId.setPuName(puInfo.getPersistenceUnitName());
                                  }
                              }
                              extendedPuIds.add(puId);
  
                              if (bindingList != null) {
                                  bindingList.add(pcBinding);
                              }
                          }
  
                          if (persistenceRefNames != null) // F743-30682
                          {
                              persistenceRefNames.add(pcBinding.getJndiName());
                          }
                      }
                  }
              }
              if (extendedPuIds.size() > 0)
              {
                  rtnValue = extendedPuIds.toArray(new JPAPuId[extendedPuIds.size()]);
              }
          }
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "getExtendedContextPuIds : " + rtnValue.length);
          return rtnValue;
      }