| ID | Category | Description |
|---|---|---|
| C001 | errata |
The specification states that the Restore View Phase of the request processing lifecycle should derive the view identifier. It also states that the ViewHandler should derive the view identifier. Clarified that it is the ViewHandler's responsibility to derive the view identifier. Updated Sections 2.2.1 and 7.5.2 of the specification accordingly. Justification: The implementation is the intended behavior (the ViewHander should derive the view identifier). The specification document is incorrect. |
| C002 | errata | Section 5.4.1 of the specification talks (in detail) about the @PostConstruct and @PreDestroy annotations that can be used with Managed Beans. This section "redundantly" specifies the requirements for the method that bears these annotations - this is already described in section 2.5 of the Common Annotation specification. The specification redundantly describes the details about annotation rules, already described in the annotations specification. Removed the redundant verbage in Section 5.4.1. Justification: The specification document is in error. |
| C003 | errata |
Section 9.2.2 of the specification still mentions <f:verbatim> as a requirement. Specifically, the specification says: "For the current version of this specification, any template text (or non-JSF custom actions) present in a page that is included with the <jsp:include> or <c:import> action, or any other mechanism that uses RequestDispatcher.include(), must be enclosed in an <f:verbatim> custom action (see Section 9.4.19 <f:verbatim> ). This restriction may be lifted in future versions of this specification." <f:verbatim> is kept in the specification because other view technologies find it useful (Facelets, for example). Removed that paragraph (restriction) from the specification. Justification: It was agreed upon by the EG that as of JSF 1.2 (which went into the platform), this requirement is no longer valid. The specification document was not updated to reflect this - the document is in error. |
| C004 | errata | Page 5-34 in Table 5-10 of the specification mentions a non-existent ExternalContext method getRequestScope(). Changed "requestScope -> externalContext.getRequestScope()" to "requestScope -> externalContext.getRequestMap()". Justification: The specification document is in error. |
| C005 | errata |
Incorrect Reference to Version element: "Sections 9.4 and 9.5 of the specification state that the jsp-version element of the TLDs for the core and html taglibs must be 2.1. However, in the schema version of the TLDs there is no jsp-version element - it's communicated via the version attribute on the opening taglib element." Removed the bullet item in Sections 9.4 / 9.5 stating that you need to specify a jsp-version element. Justification: The specification document is in error. |
| C006 | errata |
Section 3.1.1 of the specification says: "Subsequent characters may be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, dashes ( - ), and underscores ( _ )." Made this an assertion: "Subsequent characters must be...." Justification: This was an agreed upon assertion by the EG (even prior to JSF 1.2), but was overlooked in the specification document. |
| C007 | errata |
Section 2.5.2.1 of the specification talks about the locale attribute value, and mentions that the seperator characters may be '-' or '_'. Made this an assertion: "The separators between the segments must be '-' or '_'." Justification: This was an agreed upon assertion by the EG (even prior to JSF 1.2), but was overlooked in the specification document. |
| C008 | errata |
Section 3.1.1 of the specification reduntantly specifies the requirement that a provided component identifier must be unique within the closest NamingContainer parent. Here is the redundancy:
Every component may be named by a component identifier, which (if utilized)
must be unique among the components that share a common naming container parent
in a component tree. Component identifiers must conform to the following rules:
- They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).
- Subsequent characters may be letters (as defined by the Character.isLetter() method),
digits as defined by the Character.isDigit() method, dashes ( - ), and underscores ( _ ).
To minimize the size of responses generated by JavaServer Faces, it is recommended
that component identifiers be as short as possible. If a component has been given an
identifier, it must be unique in the namespace of the closest ancestor to
that component
that is a NamingContainer (if any).
Removed the redundancy so the "uniqueness" requirement is specified once in this section:
Every component may be named by a component identifier that must conform to the
following rules:
- They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).
- Subsequent characters must be letters (as defined by the Character.isLetter() method),
digits as defined by the Character.isDigit() method, dashes ( - ), or underscores ( _ ).
To minimize the size of responses generated by JavaServer Faces, it is recommended
that component identifiers be as short as possible. If a component has been given an
identifier, it must be unique in the namespace of the closest ancestor to
that component
that is a NamingContainer (if any).
Justification: Specification edit (only) to eliminate redundant verbage. |
| C009 | errata |
Javadoc changes for SelectItem: Removed the mention of a NullPointerException being thrown for constructors. Mention the default value of 'true' for the 'escape' constructor argument if it is not specified. Code snippet below is an example of each type of change.
M jsf-api/src/javax/faces/model/SelectItem.java
* @param value Value to be delivered to the model if this
* item is selected by the user
* @param label Label to be rendered for this item in the response
- *
- * @throws NullPointerException if
Justification: Here, we removed some javadoc that was not supposed to be there, and we added javadoc that was supposed to be there. The implementation was correct, but the javadocs were wrong. |
| C010 | errata |
There are two parts to this issue:
M jsf-api/src/javax/faces/convert/EnumConverter.java 1. Corrected javadocs to correctly describe implementation. 2. Added functionality to implementation to throw a ConverterException if the targetClass argument is null. Here are the changes (getAsObject method): < * Convert the argument Justification: For the first part of this issue, the EG agreed that the implementation is correct, and that the javadocs should be updated to reflect the implementation. For the second part of this issue, the EG agreed that the implementation was missing the logic to throw a ConverterException if the targetClass argument is null. |
| C011 | errata |
TLD attribute type of h:dataTable "var" attribute should not be ValueExpression enabled. The generated "html_basic" TLD was generating the "var" attribute
as ValueExpression Enabled, when it should be a String. The specification
for the Standard HTML components (the Standard HTML RenderKit Docs) specify
that this attribute must be of type M jsf-ri/src/com/sun/faces/generate/JspTLD21Generator.java - added additional case to TLD generator. If property isn't a method expression doesn't necessarily mean it will always be a value expression Regenerated the correct tld. Justification: A bug was identified in the TLD generator code that produced a type for the var attribute that did not match the specification. |
| C012 | errata |
Javadocs and method signatures for the core tag setBinding method do not agree. For example, javadoc says: @throws IllegalArgumentException but the method signature throws JspException.
M jsf-api/src/javax/faces/webapp/UIComponentELTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/PhaseListenerTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java
Made javadocs changes so they correctly coincide with the method
signatures.
Here are the changes:
--- jsf-api/src/javax/faces/webapp/UIComponentELTag.java 5 Dec 2005 16:43:04 -0000 1.4
+++ jsf-api/src/javax/faces/webapp/UIComponentELTag.java 24 Aug 2006 11:49:19 -0000
@@ -71,8 +71,7 @@
*
* @param binding The new value expression
*
- * @throws IllegalArgumentException if the specified binding is not a
- * valid value binding expression.
+ * @throws JspException if an error occurs
*/
public void setBinding(ValueExpression binding) throws JspException {
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java 10 May 2006 23:26:09 -0000 1.28
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java 24 Aug 2006 11:49:20 -0000
@@ -110,8 +110,6 @@
*
Justification: The method signatures were correct (as discussed by the EG), but the javadocs were wrong. |
| C013 | errata |
The DoubleConverter.CONVERTER_ID constant is defined incorrectly: public static final String CONVERTER_ID = "javax.faces.DoubleTime"; M jsf-api/src/javax/faces/convert/DoubleConverter.java Corrected this to be: public static final String CONVERTER_ID = "javax.faces.Double"; Justification: The implementation was inconsistent with the spec, in a way that caused the implementation to not correctly implement the spec. |
| C014 | errata |
The generated TLD <description> element incorrectly specified the value attribute to be a UIComponent. As per JSF 1.0/1.1, the correct type is SelectItem. This bug was introduced in JSF 1.2.
M jsf-ri/conf/share/jsf_core.tld
Made "value" attibute be SelectItem (not UIComponent). Regenerate
tlddocs.
Here are the changes:
--- conf/share/jsf_core.tld 31 May 2006 17:22:29 -0000 1.64
+++ conf/share/jsf_core.tld 29 Jun 2006 21:39:47 -0000
@@ -709,7 +709,7 @@
Justification: The correct type is specified in JSF 1.0/JSF 1.1. This bug was introduced in JSF 1.2. |
| C015 | errata |
ConverterTag / ConverterELTag doStartTag() methods (javadoc changes): Specified that conversion must occur if the local value is a String. The implementation was in place for this, but we were missing the javadoc to describe this behavior.
M jsf-api/src/javax/faces/webapp/ConverterELTag.java
M jsf-api/src/javax/faces/webapp/ConverterTag.java
-- added additional javadoc
Here are the changes:
/*
@@ -137,7 +137,8 @@
* class, and register it with the {@link UIComponent} instance associated
* with our most immediately surrounding {@link UIComponentTag} instance, if
* the {@link UIComponent} instance was created by this execution of the
- * containing JSP page.
+ * containing JSP page. If the
Justification: The EG agreed that we need to specify that an implementation must perform conversion if the local value is a String. |
| C016 | errata |
The generated TLD <description> element for <f:convertNumber> incorrectly specified an invalid type "percentage" when it should have been "percent". This bug was introduced in JSF 1.2. Here are the changes: > --- jsf_core.tld 29 Jun 2006 21:58:07 -0000 1.65 > +++ jsf_core.tld 23 Aug 2006 12:13:51 -0000 > @@ -401,7 +401,7 @@ >M jsf-ri/conf/share/jsf_core.tld Justification: The verbage in the <description> element specifies an incorrect value. The implementation has the correct value. |