JavaServer TM Faces Release Notes
Change Log

Specification Version: 1.2
Implementation Version: 1.2_01(b04) FCS

New Features Added In This Release

We've added five new context initialization parameters since the release of 1.2
Paramter Name Description Default Value
com.sun.faces.displayConfiguration If true then all web configuration information (context initialization parameters and environment entries) will be written to the log. This is useful during development to confirm your application is configured as expected. Valid values for this parameter are true and false false
com.sun.faces.injectionProvider This parameter specifies a class that implements the InjectionProvider SPI. This implementation represents a hook the JSF implementation will use to provide resource injection support. See the documentation of the InjectionProvider interface for more details NONE
com.sun.faces.serializationProvider This parameter specifies a class that implements the SerializationProvider SPI. This implementation represents a hook the JSF implementation will use in order to allow the use of alternate Serialization implementations. See the documentation of the SerializationProvider interface for more details NONE
com.sun.faces.responseBufferSize This parameter specifies the size, in bytes, of the buffer that is used to write all generated content exluding state. 4096
com.sun.faces.clientStateWriteBufferSize This parameter specifies the size, in bytes, of the buffer that is used to write client state. It should be noted, that the buffer used is split - half is for raw bytes, the other half is for the Base64 encoded characters of said bytes. So, for example, if the default, 8192, is used, then 4096 of that is used for the bytes, and the other 4096 is used for the Base64 encoded characters. 8192

We've deprecated several context initialization parameters as well:
Paramter Name New Parameter Name Default Value
com.sun.faces.NUMBER_OF_VIEWS_IN_SESSION com.sun.faces.numberOfViewsInSession 15
com.sun.faces.NUMBER_OF_VIEWS_IN_LOGICAL_VIEW_IN_SESSION com.sun.faces.numberOfLogicalViews 15
com.sun.faces.PreferXHTML com.sun.faces.preferXHTML false
com.sun.faces.COMPRESS_STATE com.sun.faces.compressViewState true

If you're not familiar with the parameters above check the FAQ or Java EE 5 tutorial for details.
NOTE: The deprecated parameters will continue to work, but a message will now be logged stating the deprecation as well as giving the name of the associated non-deprecated parameter.

Issues Resolved In This Release

ID Type Pri Plat Owner State Resolution Summary
220 DEFECT P5 All rlubke RESOLVED FIXED NPE Thrown if RI's Faces-config not Found in Classpath
272 DEFECT P3 All rogerk RESOLVED FIXED Accept should prefer application/xml+xhtml over text/html wh
293 DEFECT P2 All rlubke RESOLVED FIXED View ID passed to ViewHandler.restoreView during RestoreView
294 DEFECT P4 Sun rlubke RESOLVED FIXED If a private managed bean method is annotated with @PostCons
304 DEFECT P3 All rlubke RESOLVED FIXED SelectOneMenu does not grab initial value from enums
305 DEFECT P3 Sun rlubke RESOLVED FIXED h:commandLink with nested f:param and h:outputText nested wi
308 DEFECT P3 All rlubke RESOLVED FIXED Errors from ValueChangeListeners are swallowed
310 DEFECT P2 All rlubke RESOLVED FIXED duplicate component id error
313 DEFECT P5 All rlubke RESOLVED FIXED NOT_NESTED_IN_TYPE_TAG_ERROR_MESSAGE_ID
314 DEFECT P2 Sun rlubke RESOLVED FIXED Potential exists of useful error information being swallowed
315 DEFECT P3 All rogerk RESOLVED FIXED Use ResponseWriter.getContentType
320 DEFECT P3 All rogerk RESOLVED FIXED MenuRenderer loosing selected value
323 DEFECT P3 All rlubke RESOLVED FIXED Incorrect Logging
328 DEFECT P4 Sun rlubke RESOLVED FIXED If /WEB-INF/faces-config.xml is specified via the javax.face
329 DEFECT P3 All rlubke RESOLVED FIXED helloDuke doesn't work
330 DEFECT P3 All rlubke RESOLVED FIXED com.sun.faces.config.rules.ResourceBundleRule wrong assert +
332 DEFECT P3 All rlubke RESOLVED FIXED Non-Glassfish build fails
333 DEFECT P3 Macintos rlubke RESOLVED FIXED Apparent misuse of CopyOnWriteArrayList
335 DEFECT P2 Sun rlubke RESOLVED FIXED PropertyResolverChainWrapper and VariableResolverChainWrappe
336 DEFECT P3 All rlubke RESOLVED FIXED container.deploy
337 DEFECT P2 All rogerk RESOLVED FIXED Variable Resolution System Fails..
340 DEFECT P3 All rogerk RESOLVED FIXED Top Level Build Script: Nightly Upload Target file Names
342 DEFECT P3 Sun rlubke RESOLVED FIXED Removal of ELResolverInitPhaseListener can cause exceptions
350 DEFECT P3 ALL rlubke RESOLVED FIXED Listbox value is not converted when the target type is a List
321 DEFECT P3 ALL rlubke RESOLVED FIXED DataTable var attribute incorrect in TLD
351 DEFECT P3 ALL rogerk RESOLVED FIXED f:selectItem "value" Attr Exception
356 DEFECT P2 ALL rlubke RESOLVED FIXED Duplicate ID exception incorrectly thrown if a developer assigned
357 DEFECT P3 ALL rlubke RESOLVED FIXED Using browser back button causes ClassCastException
358 DEFECT P3 ALL rlubke RESOLVED FIXED viewState not incremented / non-linear navigation broken
253 ENHANCEMENT P3 All rlubke RESOLVED FIXED FacesMessages - Default Display?
295 ENHANCEMENT P2 Sun rlubke RESOLVED FIXED Provide a pluggable mechanism to allow ResourceInjection
307 ENHANCEMENT P3 Sun rlubke RESOLVED FIXED Duplicate ID exception message needs to be enhanced.
338 ENHANCEMENT P3 All youngm RESOLVED FIXED Add INFO log when a message is added to the Context
339 ENHANCEMENT P3 Sun rlubke RESOLVED FIXED AttributesMap needs to be more efficient
288 FEATURE P3 Sun rlubke RESOLVED FIXED Modify renderers to use ResponseWriter.writeText() that take
311 FEATURE P3 All rlubke RESOLVED FIXED Print restored view with application FINEST logging enabled
271 TASK P3 All rlubke RESOLVED FIXED Move JSP Registration out of the LifecycleImpl
276 TASK P3 All rlubke RESOLVED FIXED Accomodation for CDATA in ResponseWriter
322 PATCH P3 Sun rlubke RESOLVED FIXED Clean up of NPE error messages and various other findbug fix
325 PATCH P3 All rlubke RESOLVED FIXEDD FindBug-reported performance and code style changes

New Service Provider Interfaces (SPIs)

InjectionProvider.java
1    /* 
2     * The contents of this file are subject to the terms 
3     * of the Common Development and Distribution License 
4     * (the License). You may not use this file except in 
5     * compliance with the License. 
6     * 
7     * You can obtain a copy of the License at 
8     * http://jsf.java.net/CDDL.html or 
9     * legal/CDDLv1.0.txt. 
10    * See the License for the specific language governing 
11    * permission and limitations under the License. 
12    * 
13    * When distributing Covered Code, include this CDDL 
14    * Header Notice in each file and include the License file 
15    * at legal/CDDLv1.0.txt. 
16    * If applicable, add the following below the CDDL Header, 
17    * with the fields enclosed by brackets [] replaced by 
18    * your own identifying information: 
19    * "Portions Copyrighted [year] [name of copyright owner]" 
20    * 
21    * [Name of File] [ver.__] [Date] 
22    * 
23    * Copyright 2006 Oracle America Inc. All Rights Reserved 
24    */
25    
26    package com.sun.faces.spi; 
27    
28    /** 
29    * <p>This interface defines an integration point for Java EE vendors. 
30    * Each vendor will need to provide an implementation of this interface 
31    * which will provide the JSF implementation the necessary hooks to  
32    * perform resource injection.</p>   
33    *  
34    * <p>The implementation of this interface *must* be thread-safe and must 
35    * have a no-arg constructor.</p> 
36    */ 
37   public interface InjectionProvider { 
38    
39       /** 
40        * <p>The implementation of this method must perform the following 
41        * steps: 
42        *    <ul> 
43        *        <li>Inject the supported resources per the Servlet 2.5 
44        *           specification into the provided object</li> 
45        *        <li>Inoke any method marked with the <code>@PostConstruct</code> 
46        *          annotation (per the Common Annotations Specification)</li> 
47        *    </ul> 
48        * </p> 
49        * @param managedBean the target managed bean 
50        * @throws InjectionProviderException if an error occurs during  
51        *  resource injection 
52        */ 
53       public void inject(Object managedBean) throws InjectionProviderException; 
54    
55        
56       /** 
57        * <p>The implemenation of this method must invoke any 
58        * method marked with the <code>@PreDestroy</code> annotation 
59        * (per the Common Annotations Specification). 
60        * @param managedBean the target managed bean 
61        * @throws InjectionProviderException if an error occurs when invoking 
62        *  the method annotated by the <code>@PreDestroy</code> annotation 
63        */ 
64       public void invokePreDestroy(Object managedBean)  
65       throws InjectionProviderException; 
66   } 
67   
SerializationProvider.java
1    /* 
2     * The contents of this file are subject to the terms 
3     * of the Common Development and Distribution License 
4     * (the License). You may not use this file except in 
5     * compliance with the License. 
6     * 
7     * You can obtain a copy of the License at 
8     * http://jsf.java.net/CDDL.html or 
9     * legal/CDDLv1.0.txt. 
10    * See the License for the specific language governing 
11    * permission and limitations under the License. 
12    * 
13    * When distributing Covered Code, include this CDDL 
14    * Header Notice in each file and include the License file 
15    * at legal/CDDLv1.0.txt. 
16    * If applicable, add the following below the CDDL Header, 
17    * with the fields enclosed by brackets [] replaced by 
18    * your own identifying information: 
19    * "Portions Copyrighted [year] [name of copyright owner]" 
20    * 
21    * [Name of File] [ver.__] [Date] 
22    * 
23    * Copyright 2006 Oracle America Inc. All Rights Reserved 
24    */ 
25    
26   package com.sun.faces.spi; 
27    
28   import java.io.ObjectInputStream; 
29   import java.io.InputStream; 
30   import java.io.ObjectOutputStream; 
31   import java.io.OutputStream; 
32   import java.io.IOException; 
33    
34    
35   /** 
36    * <p>This interface provides a mechanism to allow the use 
37    * of alternate Java Serialization implementations.</p> 
38    *  
39    * <p>The implementation of this interface *must* be thread-safe and must 
40    * have a no-arg constructor.</p> 
41    */ 
42   public interface SerializationProvider { 
43    
44       /** 
45        * <p>Creates a new <code>ObjectInputStream</code> wrapping the specified 
46        * <code>source</code>.</p> 
47        *  
48        * <p>It's <em>extremely important</em> that the ObjectInputStream 
49        * returned by this method extends the serialization implementation's ObjectInputStream  
50        * and overrides the {@link ObjectInputStream#resolveClass(java.io.ObjectStreamClass)} 
51        * of  to perform the following or the equivalent thereof:  
52        * <br> 
53        * <pre> 
54        *     return Class.forName(desc.getName(),true,  
55                   Thread.currentThread().getContextClassLoader()); 
56        * </pre> 
57        * <br> 
58        *  
59        * If this step isn't done, there may be problems when deserializing.</p> 
60        *  
61        * @param source the source stream from which to read the Object(s) 
62        *  from 
63        * @return an <code>ObjectInputStream</code> 
64        */ 
65       public ObjectInputStream createObjectInputStream(InputStream source) 
66       throws IOException; 
67    
68    
69       /** 
70        * <p>Creates a new <code>ObjectOutputStream</code> wrapping the 
71        * specified <code>destination</code>.</p> 
72        * @param destination the destination of the serialized Object(s) 
73        * @return an <code>ObjectOutputStream</code> 
74        */ 
75       public ObjectOutputStream createObjectOutputStream(OutputStream destination) 
76       throws IOException; 
77    
78    
79   } // END SerializationProvider