Target Milestone 2.0 Rev A

The source code repositories for the spec to which this change-log applies are:

* svn url for generated portion of spec, and implementation
* CVS info for non-generated portion of spec: cvs -d :pserver:USERNAME@cvs.dev.java.net:/cvs javaserverfaces-spec-eg

IDCategoryDescriptionFixed in Source Code Repository of SpecificationIssue
C002ErrataSection 5.6.2.2 is out of sync with the current resolver implementation.yesSpec Public:848
C004ErrataRenderKitDoc for OutcomeTarget Renderers are incorrect with respect to intended design. Refer to ChangeC006 in the footnotes section below.yesSpec Public:823
C007ErrataSection JSF.11.4.7 Ordering. After the sentence "The <others /> element must be handled as follows" add a bullet point: "The <others /> element represents a set of application configuration resources. This set is described as the set of all application configuration resources discovered in the application minus the one currently being processed, minus the application configuration resources mentioned by name in the <ordering /> section. If this set is the empty set, at the time the application configuration resources are being processed, the <others > element must be ignored."yesSpec Public:824
C008Erratataglib docs for composite:interface are missing documentation for componentType attribute.yesSpec Public:849
C011ErrataSection JSF.3.6.2.1 Composite Component Metadata Specification. Add BehaviorHolderAttachedObjectTarget after iii. ActionSource2AttachedObjectTargetyesSpec Public:825
C012ErrataJavadocs for ResourceHandler.createResource(String resourceId) need to me ammended to state that if there is an error in argument resourceId, null must be returned by this method.yesSpec Public:851
C013ErrataPDL DOCS: f:event listener attribute clarification:Change description to: "A method expression that JSF invokes when an event occurs. That event is specified with the name attribute."yesSpec Public:586
C015ErrataUIViewRoot.setBeforePhaseListeners() removed the statement that all phases including RestoreView will have their beforePhaseListeners called. Reverted to the way it was in 1.2yesSpec Public:826
C016ErrataSection 2.6.2.1 Relocatable Resources: code snippet: <f:view..../> should be <f:view...> yesSpec Public:565
C017ErrataUISelectItem doesn't mention itemEscaped. yesSpec Public:430
C018ErrataViewDeclarationLanguage.retargetAttachedObjects() misses talking about BehaviorsyesSpec Public:827
C021Errataui:insert missing existing "name" attribute, implemented, tested, but not documentedyesSpec Public:667
C022Errataf:valueChangeListener missing "for" attribute. Implemented, tested, but not documentedyesSpec Public:828
C023Changein facelets VDLdoc, mark f:verbatim and f:subview as deprecatednoSpec Public:852
C024ErrataAdd an assertion to section 10.3.1 stating that EL expressions that appear in the facelet XHTML page must appear in the rendered view as if they were the right hand side of the value attribute of an <h:outputText> at the same point in the page as the EL expressionyesSpec Public:829
C027Errataweb-facelettaglibrary_2_0.xsd type incorrect for composite-library-name. Should be ***javae:string***noSpec Public:854
C028Errataui:remove VDLDoc has attribute with no namenoSpec Public:842
C029Errataui:param has attribute duplicated. One of them should be "value"yesSpec Public:855
C030ErrataRenderKit Docs javax.faces.CompositeFacet change " The implementation of encodeBegin(), must obtain " to be " The implementation of encodeChildren(), must obtain "noSpec Public:843
C031ErrataVDL docs state that composite:attribute has a target attribute with required=true. This attribute is not really required on composite:attribute. yesSpec Public:644
C032ErrataMention in spec that Objects put in view scope may need to be SerializableyesSpec Public:830
C033ErrataModify the javadoc for ResourceHandler to state that for resources residing at META-INF/resources/<resourceidentifier>. The implementation is not required to support the optional libraryVersion and resourceVersion segmentsyesSpec Public:844
C034ChangeModify table 5-10 to state that implicit object cc returns the current composite component, relative to the composite component markup page in which the expression appearsyesSpec Public:831
C035Errata3.6.2.1 Modify composite component metadata specification to state that, within the cc:interface element, the following attributes are not available unless ProjectStage is Development: displayName, expert, hidden, preferred, shortDescriptionyesSpec Public:832
C037ErrataUIComponent.restoreState() javadocs must be changed to ***say*** NPE is thrown if context is null, but no action is taken if state argument is nullyesSpec Public:845
C040ErrataVDLDocs for f:metadata. Don't mention f:view. State, "This tag must reside within the top level facelet page whose filename corresponds ot the viewid being loaded."yesSpec Public:856
C043ErrataDocument SEPARATOR_CHAR in section 11.1.3 where all the other context-params are documentedyesSpec Public:833
C044ErrataSection 11.4.6 doesn't include ViewDeclarationLanguage, VisitContextFactory, ExceptionHandlerFactory, PartialViewContext, TagHandlerDelegateFactory as decoratableyesSpec Public:834
C046ErrataSection 10.4.1.1 specifies the use of AjaxBehaviors pushBehavior but AjaxBehaviors is an implementation detail (the class exists under com package)yesSpec Public:836
C047ErrataAdd "defaults" for "execute", "render" AjaxBehavior in vdldocs. yesSpec Public:568
C048ErrataJSP should not have f:viewParam. Facelets f:viewParam must have name attribute. yesSpec Public:656
C049ErrataSpec section 3.2.5 is empty. Fix thatyesSpec Public:835
C050ErrataSpec for UIComponent.setParent() incompleteyesSpec Public:837
C054Errataf:event name attribute should be type. yesSpec Public:639
C058ErrataSection 14.4.1: Table 14-4: responseTxt should be responseText. Table 14-4: Add status property; Table 14-4: There is no "name" property. Table 14-3: reorder "status" values to be in chronological order. Section 14.4.1.1: Fix use case. yesSpec Public:642
C060ChangeReplace the last sentence in the javadoc for FacesServlet.service() to say "The implementation must make it so FacesContext.release() is called within a finally block as late as possible in the processing for the JSF related portion of this request".yesSpec Public:846
C061ChangeNon-normatively document that JavaBeans PropertyEditors will be used for EL Coercion. Mention this in the context of JSF convertersyesSpec Public:838
C062ChangeIn 3.1.5, explicitly mention not to use view scopeyesSpec Public:839
C063Change7.4.1 Clarify that, in the case of navigation actions, an empty string should be treated the same way as null: stay on the same page.yesSpec Public:747
C064ChangeCorrect StateHolder.setTransient JavaDoc (specified backwards)yesSpec Public:840
C065ChangeCorrect typos in Composite.tld (for pdldocs). Specifically, quotes around actionListener, method-signature (spelling). Also clarify the default value "false" for "required" attribute.yesSpec Public:841
C066ChangeSpecify that the Component Resource container facet must be marked transient. Specifically, the JavaDocs for UIViewRoot.getComponentResources should include: "Set the transient property of the facet to true." yesSpec Public:800
C068ChangeModify the facelet taglib xsd so that older versions of taglibs are acceptable. yesSpec Public:744
C069ChangeMake sure vdldocs for f:event list event all possible event typesyesSpec Public:712
C072ErrataNeither applyNextHandler of DelegatingMetaTagHandler or nextHandler of TagHandler are documented. yesSpec Public:780
C073ErrataSpecify f:ajax execute/render id behavior in vdldocs (as outlined in Section 10.4.1.1 of the spec). yesSpec Public:567
C074Errata<view-param> has no business being a child of <redirect> and should be renamed to <redirect-param>. yesSpec Public:698
C075ErrataincludeViewParams implicit navigation flag should be faces-include-view-params. yesSpec Public:699
C077ErrataEvent broadcasting should apply to Behaviors (not just ClientBehaviors). yesSpec Public:798
C078ErrataPostAddToViewEvent delivery specification needs clarification. Clarify UIComponent.getParent and getChildren for consistency. yesSpec Public:805
C079ErrataRenderKit Docs - TableRenderer:Clarification - the docs say to render the footer the same as the header which causes the problem. yesSpec Public:255
C080ErrataRenderKit Docs - ButtonRenderer Encode behavior w/r/t onclick attribute - should not be passthrough attribute. yesSpec Public:257
C081Erratah:message "for" attribute is mis-specified:"for" attribute should be relative id (not clientid). yesSpec Public:266
C082Errataclarify whether expression of binding-attribute of f:xxxxListener should be evaluated on postback. yesSpec Public:320
C083ErrataOption rendering, specifically when dealing with SelectItemGroups, is too generic. yesSpec Public:420
C084ErratasubmittedValue get/set methods underspecified yesSpec Public:434
C085ErrataCurrent wording in renderkit docs leads to double encoding of query parametersyesSpec Public:436
C086ErrataSelectManyCheckBox ClarificationyesSpec Public:466
C087ErrataPDL document for JSTL(Facelets) has the incorrect URI for the NameSpace. yesSpec Public:509
C088ErrataAPI docs missing for ExceptionEventContext.yesSpec Public:515
C089Erratacomposite:attribute component documentation for the attribute type should be for attribute method-signature.yesSpec Public:524
C090ErrataThe UML Diagram for javax.faces.event is out of date.yesSpec Public:525
C091ErrataMinor typo in the Interface BehaviorHolder API.yesSpec Public:534
C092ErrataTwo references to the itemLabelEscaped attribute.yesSpec Public:536
C093ErrataMissing class description for javax.faces.event.PostValidateEvent and javax.faces.event.PreValidateEvent.yesSpec Public:537
C094ErrataSection 3.7.5 typo - ClientBehavorHolder should be ClientBehaviorHolder.yesSpec Public:540
C095ErrataSection 4.1.3 typo - NamingContaier should be NamingContainer.yesSpec Public:541
C096ErrataAPI Docs: Application.publishEvent: Docs say to throw NPE if any of the arguments is null. However, sourceBaseType arg can be null.yesSpec Public:553
C097ErrataFacelets TLD Docs: Missing "for" attribute for "message" and "messages" tags.yesSpec Public:558
C099ErrataResourceHandler docs: Clarify that relative paths are disallowed in library names.yesSpec Public:577
C100ErrataRenderkit Docs: h:link - Formatting - add paragraphsyesSpec Public:588
C101ErrataSpec Section 2.5.9: Fix Grammar: "The first client behavior to provided by the JSF specification is the AjaxBehavior." should be: "The first client behavior provided by the JSF specification is the AjaxBehavior." yesSpec Public:590
C102ErrataSpec Section 9.4 doesn't list all the validation tags and it lists the validateDoubleRange tag twice.noSpec Public:591
C103ErrataVdldocs and Spec section 3.6.2.1 have component:actionSource target attribute with commas as delimiters - should be "space" as delimiter.yesSpec Public:592
C104ErrataSpec Section 7.4.1: getNavigationCase should return NavigationCase and not void. yesSpec Public:605
C105ErrataSpec Section 10.4.1.4 says: f:validateBean should extend validateHandler. Should be ValidatorHandler.yesSpec Public:615
C106ErrataTypo: Pages in the TLD docs says "JSF 2.0 Page Decraration Language". Should be "Declaration". yesSpec Public:617
C107ErrataTypos: Table 14-1, 14-2, page 14-3.yesSpec Public:629
C108ErrataUIData.invokeOnComponent docs need to be updated to include handling of column level facets. yesSpec Public:632
C109ErrataSpec Section 3.5.6.1 needs to be corrected to state that default validators are added during tag execution time. yesSpec Public:635
C110ErratavalidateBean and validateRequired tags need to be removed from the JSP PDL documentationyesSpec Public:645
C111Erratajsf.ajax.response update element clarification needed in JavaScript docs. yesSpec Public:646
C112ErrataSpec Section 10.4.1.1: Clarify what happens when nesting and wrapping f:ajax tags collide. yesSpec Public:652
C113ErrataTypo: Spec Section 8.3.1: "renderkit-id" should be "render-kit-id" and "renderkit" should be "render-kit". yesSpec Public:660
C114ErrataAdd "rendered" attribute to VDL docs for ui:component and ui:fragment. yesSpec Public:661
C115ErrataJavaDocs for UIComponent.processValidators is incomplete. It should mention popComponentFromEL. yesSpec Public:664
C116ErrataDead link in VDL docs.yesSpec Public:666
C117ErrataSpec Section 2.5.2.4: Standard messages for LengthValidator are confusing.yesSpec Public:668
C118ErrataSpec/pdldocs don't say what the default is for "target" in h:outputScript.yesSpec Public:673
C119Erratapartial-view-context-factory is only mentioned in the schema part of the spec. Houls be added to Spec Section 13.4.2.yesSpec Public:705
C120ErrataSpecification edits needed - see: herenoSpec Public:714
C121ErrataTypo - Spec Section 7.5.2: "ViewHanlder" should be "ViewHandler"; "renderView" and "restoreView" methods should call "ViewDeclarationLanguage.renderView" and "ViewDeclarationLanguage.restoreView".yesSpec Public:729
C122ErrataSpec Section 2.6.1.3: Specify that a libraryName or resourceName contains only XML NameChar, but not a colon; a libraryName or resourceName does not match the regex "[0-9]+(_[0-9]+)* or [A-Za-z]{2}(_[A-Za-z]{2}(_[A-Za-z]+)*)?"yesSpec Public:740
C123ErrataTypos in PDLDocs for ui:repeatyesSpec Public:743
C124ErrataRemove "partial-traversal" application element from the spec as it does not exist in the schema.yesSpec Public:767
C125ErrataAdd mssing ID attributes to schema for: faces-config-orderingType,faces-config-ordering-orderingType,faces-config-absoluteOrderingType,faces-config-default-valueType,faces-config-from-view-idType,faces-config-client-behavior-rendererType,faces-config-behaviorType,faces-config-value-classType,faces-config-rendererTypeyesSpec Public:768
C126ErrataUIInput JavaDocs: Specify the handling of conversion failures.yesSpec Public:775
C127ErrataEditableValueHodler JavaDocs: Missing "@Since 2.0" for "resetValue" method.yesSpec Public:779
C128ErrataVDL documentation for f:selectItem references the "escape" attribute. It should be "itemEscaped".yesSpec Public:788
C129ErrataSpecify description for "f:param" "disabled" attribute.yesSpec Public:794
C130ErrataSimplify PostRestoreStateEvent delivery requirements.yesSpec Public:806


Footnotes for above changes


ChangeC006

Rewrite Javadocs for OutcomeTarget renderers

Docs for OutcomeTargetButton

Encode Behavior

Render an HTML "input" element of type "button". The value of the component is rendered as the button text and the outcome of the component is used to determine the target URL which is activated by onclick. If "image" attribute is specified, render it as the value of the "src" attribute after passing it to the getResourceURL() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of the ExternalContext.

If the component is not disabled, take the following actions.

Algorithm to obtain the url to which the user-agent should issue a GET request when clicked

Obtain the NavigationCase that corresponds to the component instance for this Renderer.

Obtain an instance of javax.faces.application.ConfigurableNavigationHandler from the ViewHandler. If no such instance can be obtained, write the "disabled" attribute on the button. Otherwise, let outcome be the result of calling getOutcome() on the argument component, which must be an instance of UIOutcomeTarget. If this result is null, let outcome be the viewId of the current UIViewRoot. Let navCase be the return from calling getNavigationCase() on the ConfigurableNavigationHandler, passing the current FacesContext as the first argument, null, as the second argument, and outcome as the third argument. If this returns null, log an informative error which includes the component id, and write the "disabled" attribute on the component markup, with the value of true. Otherwise obtain the encoded target URL using the following algorithm.

Algorithm to obtain the encoded target URL

  • Let params be the Map<String, List<String>> to be passed to ViewHandler.getBookmarkableURL(). Build this map up first from any child UIParameter components. These children must be processed in the order in which they appear as children. If multiple children with the same name are encountered, their values must appear in the List<String> in the Map entry with the same name, and appear in the list in the same order as their child order.

  • Next, obtain any parameters included within the navigation case. Call getParameters() on navCase. The result will be a Map<String, List<String>>. If the result is non-null and non-empty, iterate over the entries from the result Map and, if no entry with the same name exists in params, set the value from the current entry as the value in the params Map.

  • Let includeViewParams be the result of a logical OR of the results from calling isIncludeViewParams() on the argument UIOutcomeTarget component and calling isIncludeViewParams on navCase.

  • Call getBookmarkableURL() on the ViewHandler, passing the current FacesContext as the first argument, the return from calling getToViewId() as the second argument, params as the third argument, and includeViewParams as the last argument.

The entire target URL string must be passed through a call to the encodeResourceURL() method of the ExternalContext. The name of the UIParameter goes on the left hand side, and the value of the UIParameter on the right hand side. The name and the value must be URLEncoded. Each UIParameter instance is separeted by an ampersand, as dictated in the URL spec. The final encoded result will be written out to the onclick attribute of the button as "window.location.href = ''". If the developer has specified a custom onlclick the window.location.href name/value pair will be appended at the end of the developer specified script. If the "fragment" attribute is specified, the value will be included at the end of the resulting URL preceded by a hash mark. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute. If the "id" attribute is specified, follow the same steps as mentioned in the "General Notes on Encoding" section of the RenderKit docs regarding the "id" attribute for UIInput components. If the "disabled" attribute is specified, do not render the "onclick" element and assign the "disabled" attribute a value of true.

Docs for OutcomeTargetLink

Render an HTML "a" anchor element. The value of the component is rendered as the anchor text and the outcome of the component is used to determine the target URL rendered in the "href" attribute. Execute the Algorithm to obtain the URL to which the user-agent should issue a GET request when clicked. If the "id" attribute is specified, follow the same steps as mentioned in the "General Notes on Encoding" section of the RenderKit docs regarding the "id" attribute for UIInput components. If the "disabled" attribute is specified, do not render the HTML "a" anchor element or the "href" element. Instead, render a "span" element. If the "styleClass" attribute is specified, render its value as the value of the "class" attribute on the "span". Render any pass-through attributes on the "span".