Description
The check for required attributes at Composite Components in CompositeComponentResourceTagHandler does not parses literal booleans right. It uses Boolean.getBoolen(systemProperty) which looks up a System property with the given name. Boolean.valueOf(string) should be used instead:
CompositeComponentResourceTagHandler.createComponent(FaceletContext)
Object value = ve.getValue(facesContext.getELContext());
Boolean required = null;
if (value instanceof Boolean)
else if (value != null)
{ required = Boolean.valueOf(value.toString()); } if (required != null && required.booleanValue())
{
Object attrValue = this.tag.getAttributes().get (propertyDescriptor.getName());
if (attrValue == null)
{ throw new TagException(this.tag, "Attribute '" + propertyDescriptor.getName() + "' is required"); }}