@Override
    public String getClientId(FacesContext context) {
        if (baseClientId != null) {
            return baseClientId;
        }

        String id = getId();
        if (id == null) {
            UniqueIdVendor parentUniqueIdVendor = ComponentTraversalUtils.closestUniqueIdVendor(this);

            if (parentUniqueIdVendor == null) {
                UIViewRoot viewRoot = context.getViewRoot();

                if (viewRoot != null) {
                    id = viewRoot.createUniqueId();
                }
                else {
                    throw new FacesException("Cannot create clientId for " + getClass().getCanonicalName());
                }
            }
            else {
                id = parentUniqueIdVendor.createUniqueId(context, null);
            }

            setId(id);
        }

        UIComponent namingContainer = ComponentTraversalUtils.closestNamingContainer(this);
        if (namingContainer != null) {
            String containerClientId = namingContainer.getContainerClientId(context);

            if (containerClientId != null) {
                StringBuilder sb = SharedStringBuilder.get(context, SB_ID, containerClientId.length() + 10);
                baseClientId = sb.append(containerClientId).append(UINamingContainer.getSeparatorChar(context)).append(id).toString();
            }
            else {
                baseClientId = id;
            }
        }
        else {
            baseClientId = id;
        }

        Renderer renderer = getRenderer(context);
        if (renderer != null) {
            baseClientId = renderer.convertClientId(context, baseClientId);
        }

        return baseClientId;
    }
Bypass Mojarra {@link UIData#getClientId(FacesContext)} impl
see MYFACES-2744 (same as {@link UIComponentBase#getClientId(FacesContext)}
primefaces/src/main/java/org/primefaces/component/patch/UIDataPatch.java