code: public void setJspId(String id) {
          // reset JSP ID here instead of release as we may need
          // to check the ID after the tag has been used
          this.jspId = null;
  
          Integer pcId = (Integer)
                  pageContext.getAttribute(JAVAX_FACES_PAGECONTEXT_MARKER,
                          PageContext.PAGE_SCOPE);
          if (pcId == null) {
              if (null == context) {
                  context = FacesContext.getCurrentInstance();
              }
              AtomicInteger aInt = (AtomicInteger) context.getAttributes().get(JAVAX_FACES_PAGECONTEXT_COUNTER);
              if (aInt == null) {
                  aInt = new AtomicInteger();
                  context.getAttributes().put(JAVAX_FACES_PAGECONTEXT_COUNTER, aInt);
              }
  
              pcId = aInt.incrementAndGet();
              pageContext.setAttribute(JAVAX_FACES_PAGECONTEXT_MARKER, pcId);
          }
          if (pcId.intValue() > 1) {
              StringBuilder builder = new StringBuilder(id.length() + 3);
              builder.append(id).append("pc").append(pcId);
              jspId = builder.toString();
          } else {
              jspId = id;
          }
  
          facesJspId = null;
          updatePreviousJspIdAndIteratorStatus(jspId);
      }
docs: <p>Defined on {@link JspIdConsumer}.  This method is called by
  the container before {@link #doStartTag}.  The argument is
  guaranteed to be unique within the page.</p>
  
  <p>IMPLEMENTATION NOTE:  This method will detect where we
  are in an include and assign a unique ID for each include
  in a particular 'logical page'.  This allows us to avoid
  possible duplicate ID situations for included pages that
  have components without explicit IDs.</p>
  
  @param id the container generated id for this tag, guaranteed to
  be unique within the page.