docs: @Override
      public boolean processDeferredReferenceData() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "processDeferredReferenceData", "this=" + this);
          }
  
          Map<DeferredReferenceData, Boolean> deferredReferenceDatas;
          synchronized (this) {
              deferredReferenceDatas = this.deferredReferenceDatas;
              this.deferredReferenceDatas = null;
  
              if (parent != null) {
                  parent.removeDeferredReferenceData(this);
              }
          }
  
          boolean any = false;
  
          if (deferredReferenceDatas != null) {
              for (DeferredReferenceData refData : deferredReferenceDatas.keySet()) {
                  try {
                      any |= refData.processDeferredReferenceData();
                  } catch (InjectionException ex) {
                      // We're processing all references in an attempt to locate
                      // non-java:comp references, so we don't care about failures
                      // (erroneous or conflicting metadata).  Any exception that
                      // is thrown will be rethrown by ReferenceContext.process
                      // when the component is actually used.
                      ex.getClass(); // findbugs
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "processDeferredReferenceData", any);
          }
          return any;
      }