Stan already got two of those. Dennis Byrne
>-----Original Message----- >From: Martin Marinschek [mailto:[EMAIL PROTECTED] >Sent: Saturday, June 3, 2006 10:37 PM >To: 'MyFaces Development' >Subject: Re: svn commit: r411228 - >/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java > >Three changes are necessary: > >-invokeOnComponent, two times, as it needs to be implemented on >UIComponent and UIData >-encodeAll on UIComponent > >regards, > >Martin > >On 6/4/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: >> >Basically, those are invokeOnComponent, and the contentInterweaving >> >/tree built first approach. The only 1.2 thing I need for that is >> >three new methods in the API. Functionalitywise, we'll be as good as >> >1.2 with this. >> >> On the subject of duplication of effort, is UIComponent.invokeOnComponent >> one of these methods ? What are the other two? >> >> Dennis Byrne >> >> >Stan's work has mostly been done on the unified EL, and the new API >> >coming along with that. I won't touch this at all. So I wouldn't >> >reimplement what he has been doing. >> > >> >regards, >> > >> >Martin >> > >> > >> > >> > >> > >> >On 6/3/06, Sean Schofield <[EMAIL PROTECTED]> wrote: >> >> Still -1 for me. I agree with Dennis. This will negatively impact >> >> our progress towards 1.2. Even if those of us opposed are not >> >> involved in doing the work, its still work that could be done on the >> >> full JSF 1.2 version (or something else.) >> >> >> >> Keep in mind that we are *still* trying to get a tomahawk release out >> >> the door. So far only Matthias and one non-committer have volunteered >> >> to help. >> >> >> >> Its hard to see how the 1.2 lite version will not involve duplication >> >> of work. We've already established that Stan's work can't be easily >> >> separated out into TC 5.5 and TC 6 so basically Martin and others will >> >> end up duplicating much of what he has already done just to make >> >> things work on TC 5.5. >> >> >> >> Its hard to imagine how this duplication of work is a good thing. >> >> Either Stan's work will go ignored or Martin will be duplicating what >> >> Stan did (at least partially.) Given the availabilty of our >> >> committers it sometimes takes a few weeks to get a minor release out >> >> the door so I worry that we can't afford to divide our efforts here. >> >> Three core branches, plus tobago, tomahawk, adf and now the IBM thing. >> >> We're stretching ourselves way too thin here. >> >> >> >> Sean >> >> >> >> On 6/2/06, Grant Smith <[EMAIL PROTECTED]> wrote: >> >> > +1 on Martin's plans. It's a good start to eventually having a pure 1.2 >> >> > implementation. Let's hit it. >> >> > >> >> > >> >> > On 6/2/06, Martin Marinschek < [EMAIL PROTECTED]> wrote: >> >> > > Hi Dennis, >> >> > > >> >> > > I said I'll do the merge - and I'll do it! >> >> > > >> >> > > It will not be 1.1 compliant in a sense of passing the TCK - that's >> >> > > not possible, the API will change. >> >> > > >> >> > > I know that a fully certified JSF1.2 implementation is our ultimate, >> >> > > and most valuable goal. We'll get there, and I believe faster on this >> >> > > path, than on the other. More people can work along with us... >> >> > > >> >> > > But: I also believe that a 1.1.5 implementation _is_ valuable. There >> >> > > are quite a few people who are working on JSF right now. They might >> >> > > not want to switch their environment right now. They want the full >> >> > > functionality of 1.2 on their environment. They'll get it _only_ with >> >> > > MyFaces. >> >> > > >> >> > > regards, >> >> > > >> >> > > Martin >> >> > > >> >> > > On 6/2/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: >> >> > > > >1.4 and 5.5 compatible way, and then in a month do the final step >> >> > > > >on >> >> > > > >1.2 pure. >> >> > > > >> >> > > > So, 30 days from today? We need JIRA taska and volunteers from the >> >> > > > JSF >> >> > 1.15 group: >> >> > > > >> >> > > > Who will do the merge? >> >> > > > Who will test it for 1.1 compliance? >> >> > > > Who will bring it back in to compliance? >> >> > > > >> >> > > > Perhaps you guys can help me figure out if we have difference in >> >> > > > values, >> >> > or difference in cost estimates. We are all in agreement that >> >> > supporting >> >> > our own MyFaces 1.15 implementation will delay a actual real certified >> >> > JSF >> >> > 1.2 release ? right? Do you just think the delay is trivial, or do you >> >> > think your 1.15 implementation is more valuable, or do you not value a >> >> > 1.2 >> >> > implementation as much as I do? >> >> > > > >> >> > > > Dennis Byrne >> >> > > > >> >> > > > >regards, >> >> > > > > >> >> > > > >Martin >> >> > > > > >> >> > > > >On 6/2/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: >> >> > > > >> @team - what is the game plan for making sure improvements like >> >> > > > >> this >> >> > are getting into the 1.2 branch? When will 1.2 be trunk ? >> >> > > > >> >> >> > > > >> @Grant - not an attack on you >> >> > > > >> >> >> > > > >> Dennis Byrne >> >> > > > >> >> >> > > > >> >-----Original Message----- >> >> > > > >> >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> >> > > > >> >Sent: Friday, June 2, 2006 02:35 PM >> >> > > > >> >To: [email protected] >> >> > > > >> >Subject: svn commit: r411228 - >> >> > /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java >> >> > > > >> > >> >> > > > >> >Author: grantsmith >> >> > > > >> >Date: Fri Jun 2 11:35:51 2006 >> >> > > > >> >New Revision: 411228 >> >> > > > >> > >> >> > > > >> >URL: >> >> > http://svn.apache.org/viewvc?rev=411228&view=rev >> >> > > > >> >Log: >> >> > > > >> >MYFACES-1301: fixes check for stale components >> >> > > > >> > >> >> > > > >> > >> >> > > > >> >Modified: >> >> > > > >> > >> >> > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java >> >> > > > >> > >> >> > > > >> >Modified: >> >> > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java >> >> > > > >> >URL: >> >> > http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=411228&r1=411227&r2=411228&view=diff >> >> > > > >> >> >> > >============================================================================== >> >> > > > >> >--- >> >> > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java >> >> > (original) >> >> > > > >> >+++ >> >> > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java >> >> > Fri Jun 2 11:35:51 2006 >> >> > > > >> >@@ -52,20 +52,18 @@ >> >> > > > >> > * @version $Revision$ $Date$ >> >> > > > >> > */ >> >> > > > >> > public class ApplicationImpl >> >> > > > >> >- extends Application >> >> > > > >> >+ extends Application >> >> > > > >> > { >> >> > > > >> > private static final Log log = >> >> > LogFactory.getLog(ApplicationImpl.class); >> >> > > > >> > >> >> > > > >> > //~ Instance fields >> >> > ---------------------------------------------------------------------------- >> >> > > > >> > >> >> > > > >> > private final Map >> >> > _valueBindingCache = >> >> > > > >> >- new BiLevelCacheMap(90) >> >> > > > >> >- { >> >> > > > >> >- protected Object newInstance(Object key) >> >> > > > >> >- { >> >> > > > >> >- return new ValueBindingImpl( >> >> > > > >> >ApplicationImpl.this, >> >> > (String) key); >> >> > > > >> >- } >> >> > > > >> >- }; >> >> > > > >> >+ new BiLevelCacheMap(90) { >> >> > > > >> >+ protected Object newInstance(Object key) { >> >> > > > >> >+ return new >> >> > ValueBindingImpl(ApplicationImpl.this, (String) key); >> >> > > > >> >+ } >> >> > > > >> >+ }; >> >> > > > >> > >> >> > > > >> > private Collection _supportedLocales = >> >> > Collections.EMPTY_SET; >> >> > > > >> > private Locale _defaultLocale; >> >> > > > >> >@@ -193,7 +191,7 @@ >> >> > > > >> > } >> >> > > > >> > _propertyResolver = propertyResolver; >> >> > > > >> > if (log.isTraceEnabled()) log.trace("set >> >> > > > >> > PropertyResolver = >> >> > " + propertyResolver.getClass().getName()); >> >> > > > >> >- } >> >> > > > >> >+ } >> >> > > > >> > >> >> > > > >> > public PropertyResolver getPropertyResolver() >> >> > > > >> > { >> >> > > > >> >@@ -270,7 +268,7 @@ >> >> > > > >> > { >> >> > > > >> > _componentClassMap.put(componentType, >> >> > ClassUtils.simpleClassForName(componentClassName)); >> >> > > > >> > if (log.isTraceEnabled()) log.trace("add Component >> >> > class = " + componentClassName + >> >> > > > >> >- " >> >> > for type = " + componentType); >> >> > > > >> >+ " for type = " + componentType); >> >> > > > >> > } >> >> > > > >> > catch (Exception e) >> >> > > > >> > { >> >> > > > >> >@@ -297,7 +295,7 @@ >> >> > > > >> > >> >> > _converterIdToClassMap.put(converterId, >> >> > ClassUtils.simpleClassForName(converterClass)); >> >> > > > >> > if (log.isTraceEnabled()) log.trace("add Converter >> >> > > > >> > id = >> >> > " + converterId + >> >> > > > >> > " converterClass = " + converterClass); >> >> > > > >> >- } >> >> > > > >> >+ } >> >> > > > >> > catch (Exception e) >> >> > > > >> > { >> >> > > > >> > log.error("Converter class " + converterClass + " >> >> > > > >> > not >> >> > found", e); >> >> > > > >> >@@ -363,7 +361,7 @@ >> >> > > > >> > { >> >> > > > >> > _validatorClassMap.put(validatorId, >> >> > ClassUtils.simpleClassForName(validatorClass)); >> >> > > > >> > if (log.isTraceEnabled()) log.trace("add Validator >> >> > > > >> > id = >> >> > " + validatorId + >> >> > > > >> >- " >> >> > class = " + validatorClass); >> >> > > > >> >+ " class = " + validatorClass); >> >> > > > >> > } >> >> > > > >> > catch (Exception e) >> >> > > > >> > { >> >> > > > >> >@@ -372,7 +370,7 @@ >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > public UIComponent createComponent(String componentType) >> >> > > > >> >- throws FacesException >> >> > > > >> >+ throws FacesException >> >> > > > >> > { >> >> > > > >> > if ((componentType == null) || (componentType.length() >> >> > > > >> > == >> >> > 0)) >> >> > > > >> > { >> >> > > > >> >@@ -405,8 +403,8 @@ >> >> > > > >> > public UIComponent createComponent(ValueBinding >> >> > > > >> > valueBinding, >> >> > > > >> > >> >> > FacesContext facesContext, >> >> > > > >> > String >> >> > componentType) >> >> > > > >> >- throws FacesException >> >> > > > >> >- { >> >> > > > >> >+ throws FacesException >> >> > > > >> >+ { >> >> > > > >> > if ((valueBinding == null)) >> >> > > > >> > { >> >> > > > >> > log.error("createComponent: valueBinding = null is >> >> > > > >> > not >> >> > allowed"); >> >> > > > >> >@@ -427,65 +425,55 @@ >> >> > > > >> > >> >> > > > >> > if (obj instanceof UIComponent) >> >> > > > >> > { >> >> > > > >> >- // check for stale component >> >> > > > >> >- UIComponent parent = (UIComponent) obj; >> >> > > > >> >- while (parent.getParent() != null) { >> >> > > > >> >- parent = parent.getParent(); >> >> > > > >> >- } >> >> > > > >> >- if (!(parent instanceof UIViewRoot) || parent == >> >> > facesContext.getViewRoot()) { >> >> > > > >> >- return (UIComponent) obj; >> >> > > > >> >- } >> >> > > > >> >- else { >> >> > > > >> >- log.debug("Stale component found while >> >> > creating component of type [" + componentType + "]" >> >> > > > >> >- + " for binding [" + >> >> > valueBinding.getExpressionString() + "]"); >> >> > > > >> >- } >> >> > > > >> >+ // check for stale component >> >> > > > >> >+ UIComponent parent = (UIComponent) obj; >> >> > > > >> >+ while (parent.getParent() != null) { >> >> > > > >> >+ parent = parent.getParent(); >> >> > > > >> >+ } >> >> > > > >> >+ if (!(parent instanceof UIViewRoot) || parent == >> >> > facesContext.getViewRoot()) { >> >> > > > >> >+ return (UIComponent) obj; >> >> > > > >> >+ } else { >> >> > > > >> >+ log.debug("Stale component found while creating >> >> > component of type [" + componentType + "]" >> >> > > > >> >+ + " for binding [" + >> >> > valueBinding.getExpressionString() + "]"); >> >> > > > >> >+ } >> >> > > > >> > >> >> > > > >> >- return (UIComponent) obj; >> >> > > > >> > } >> >> > > > >> >- else >> >> > > > >> >- { >> >> > > > >> >- try { >> >> > > > >> >+ try { >> >> > > > >> > UIComponent component = >> >> > > > >> > createComponent(componentType); >> >> > > > >> > valueBinding.setValue(facesContext, component); >> >> > > > >> > return component; >> >> > > > >> >- } catch(FacesException ex) { >> >> > > > >> >- log.error("Exception while creating component >> >> > > > >> >of >> >> > type [" + componentType + "]" >> >> > > > >> >- + " for binding [" + >> >> > valueBinding.getExpressionString() + "]"); >> >> > > > >> >- throw ex; >> >> > > > >> >- } >> >> > > > >> >+ } catch(FacesException ex) { >> >> > > > >> >+ log.error("Exception while creating component of >> >> > > > >> >type >> >> > [" + componentType + "]" >> >> > > > >> >+ + " for binding [" + >> >> > valueBinding.getExpressionString () + "]"); >> >> > > > >> >+ throw ex; >> >> > > > >> >+ >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public Converter createConverter(String converterId) >> >> > > > >> >- { >> >> > > > >> >- if ((converterId == null) || (converterId.length() == >> >> > > > >> >0)) >> >> > > > >> >- { >> >> > > > >> >+ public Converter createConverter(String converterId) { >> >> > > > >> >+ if ((converterId == null) || (converterId.length() == >> >> > > > >> >0)) { >> >> > > > >> > log.error("createConverter: converterId = null is >> >> > > > >> > not >> >> > allowed"); >> >> > > > >> > throw new >> >> > NullPointerException("createConverter: converterId = null >> >> > is not allowed"); >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > Class converterClass = (Class) >> >> > _converterIdToClassMap.get(converterId); >> >> > > > >> > >> >> > > > >> >- try >> >> > > > >> >- { >> >> > > > >> >+ try { >> >> > > > >> > Converter converter= (Converter) >> >> > converterClass.newInstance(); >> >> > > > >> > >> >> > > > >> > setConverterProperties(converterClass, >> >> > converter); >> >> > > > >> > >> >> > > > >> > return converter; >> >> > > > >> > } >> >> > > > >> >- catch (Exception e) >> >> > > > >> >- { >> >> > > > >> >+ catch (Exception e) { >> >> > > > >> > log.error("Could not instantiate converter " + >> >> > converterClass, e); >> >> > > > >> > throw new FacesException("Could not instantiate >> >> > converter: " + converterClass, e); >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > >> >> > > > >> >- public Converter createConverter(Class targetClass) >> >> > > > >> >- { >> >> > > > >> >- if (targetClass == null) >> >> > > > >> >- { >> >> > > > >> >+ public Converter createConverter(Class targetClass) { >> >> > > > >> >+ if (targetClass == null) { >> >> > > > >> > log.error("createConverter: targetClass = null is >> >> > > > >> > not >> >> > allowed"); >> >> > > > >> > throw new >> >> > NullPointerException("createConverter: targetClass = null >> >> > is not allowed"); >> >> > > > >> > } >> >> > > > >> >@@ -496,112 +484,87 @@ >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > >> >> > > > >> >- private Converter internalCreateConverter(Class >> >> > > > >> >targetClass) >> >> > > > >> >- { >> >> > > > >> >+ private Converter internalCreateConverter(Class >> >> > > > >> >targetClass) { >> >> > > > >> > // Locate a Converter registered for the target class >> >> > itself. >> >> > > > >> > String converterClassName = >> >> > (String)_converterClassNameToClassMap.get(targetClass); >> >> > > > >> > >> >> > > > >> > //Locate a Converter registered for interfaces that are >> >> > > > >> > // implemented by the target class (directly or >> >> > indirectly). >> >> > > > >> >- if (converterClassName == null) >> >> > > > >> >- { >> >> > > > >> >+ if (converterClassName == null) { >> >> > > > >> > Class interfaces[] = targetClass.getInterfaces(); >> >> > > > >> >- if (interfaces != null) >> >> > > > >> >- { >> >> > > > >> >- for (int i = 0, len = interfaces.length; i < >> >> > > > >> >len; >> >> > i++) >> >> > > > >> >- { >> >> > > > >> >- // search all superinterfaces for a >> >> > > > >> >matching >> >> > converter, create it >> >> > > > >> >+ if (interfaces != null) { >> >> > > > >> >+ for (int i = 0, len = interfaces.length; i < >> >> > > > >> >len; >> >> > i++) { >> >> > > > >> >+ // search all superinterfaces for a >> >> > > > >> >matching >> >> > converter, create it >> >> > > > >> > Converter converter = >> >> > internalCreateConverter(interfaces[i]); >> >> > > > >> >- if (converter != null) >> >> > > > >> >- { >> >> > > > >> >+ if (converter != null) { >> >> > > > >> > return converter; >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- if (converterClassName != null) >> >> > > > >> >- { >> >> > > > >> >- try >> >> > > > >> >- { >> >> > > > >> >+ if (converterClassName != null) { >> >> > > > >> >+ try { >> >> > > > >> > Class converterClass = >> >> > ClassUtils.simpleClassForName(converterClassName); >> >> > > > >> >- >> >> > > > >> >+ >> >> > > > >> > Converter converter = (Converter) >> >> > converterClass.newInstance(); >> >> > > > >> > >> >> > > > >> > >> >> > setConverterProperties(converterClass, converter); >> >> > > > >> > >> >> > > > >> > return converter; >> >> > > > >> > } >> >> > > > >> >- catch (Exception e) >> >> > > > >> >- { >> >> > > > >> >+ catch (Exception e) { >> >> > > > >> > log.error ("Could not instantiate converter " + >> >> > converterClassName, e); >> >> > > > >> > throw new FacesException("Could not instantiate >> >> > converter: " + converterClassName, e); >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > // locate converter for primitive types >> >> > > > >> >- if (targetClass == Long.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ if (targetClass == Long.TYPE) { >> >> > > > >> > return internalCreateConverter(Long.class); >> >> > > > >> >- } else if (targetClass == Boolean.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Boolean.TYPE) { >> >> > > > >> > return internalCreateConverter(Boolean.class); >> >> > > > >> >- } else if (targetClass == Double.TYPE ) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Double.TYPE) { >> >> > > > >> > return internalCreateConverter(Double.class); >> >> > > > >> >- } else if (targetClass == Byte.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Byte.TYPE) { >> >> > > > >> > return internalCreateConverter(Byte.class); >> >> > > > >> >- } else if (targetClass == Short.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Short.TYPE) { >> >> > > > >> > return internalCreateConverter(Short.class); >> >> > > > >> >- } else if (targetClass == Integer.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Integer.TYPE) { >> >> > > > >> > return internalCreateConverter(Integer.class); >> >> > > > >> >- } else if (targetClass == Float.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Float.TYPE) { >> >> > > > >> > return internalCreateConverter(Float.class); >> >> > > > >> >- } else if (targetClass == Character.TYPE) >> >> > > > >> >- { >> >> > > > >> >+ } else if (targetClass == Character.TYPE) { >> >> > > > >> > return internalCreateConverter(Character.class); >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- >> >> > > > >> > //Locate a Converter registered for the superclass (if >> >> > > > >> > any) >> >> > of the target class, >> >> > > > >> > // recursively working up the inheritance hierarchy. >> >> > > > >> > Class superClazz = targetClass.getSuperclass(); >> >> > > > >> >- if (superClazz != null) >> >> > > > >> >- { >> >> > > > >> >+ if (superClazz != null) { >> >> > > > >> > return >> >> > internalCreateConverter(superClazz); >> >> > > > >> >- } >> >> > > > >> >- else >> >> > > > >> >- { >> >> > > > >> >+ } else { >> >> > > > >> > return null; >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- private void setConverterProperties(Class converterClass, >> >> > Converter converter) >> >> > > > >> >- { >> >> > > > >> >+ private void setConverterProperties(Class converterClass, >> >> > Converter converter) { >> >> > > > >> > >> >> > org.apache.myfaces.config.impl.digester.elements.Converter >> >> > converterConfig = >> >> > > > >> > ( >> >> > org.apache.myfaces.config.impl.digester.elements.Converter) >> >> > > > >> >- >> >> > _converterClassNameToConfigurationMap.get(converterClass.getName()); >> >> > > > >> >+ >> >> > _converterClassNameToConfigurationMap.get( >> >> > converterClass.getName()); >> >> > > > >> > >> >> > > > >> >- if(converterConfig != null) >> >> > > > >> >- { >> >> > > > >> >+ if(converterConfig != null) { >> >> > > > >> > >> >> > > > >> > Iterator it = converterConfig.getProperties(); >> >> > > > >> > >> >> > > > >> >- while (it.hasNext()) >> >> > > > >> >- { >> >> > > > >> >+ while ( it.hasNext()) { >> >> > > > >> > Property property = (Property) it.next(); >> >> > > > >> > >> >> > > > >> >- try >> >> > > > >> >- { >> >> > > > >> >+ try { >> >> > > > >> > >> >> > BeanUtils.setProperty(converter,property.getPropertyName(),property.getDefaultValue()); >> >> > > > >> > } >> >> > > > >> >- catch(Throwable th) >> >> > > > >> >- { >> >> > > > >> >+ catch(Throwable th) { >> >> > > > >> > log.error("Initializing converter : >> >> > "+converterClass.getName()+" with property : "+ >> >> > > > >> > property.getPropertyName()+" and >> >> > > > >> > value >> >> > : "+property.getDefaultValue()+" failed."); >> >> > > > >> > } >> >> > > > >> >@@ -611,10 +574,8 @@ >> >> > > > >> > >> >> > > > >> > >> >> > > > >> > public synchronized MethodBinding >> >> > > > >> > createMethodBinding(String >> >> > reference, Class[] params) >> >> > > > >> >- throws ReferenceSyntaxException >> >> > > > >> >- { >> >> > > > >> >- if ((reference == null) || (reference.length() == 0)) >> >> > > > >> >- { >> >> > > > >> >+ throws ReferenceSyntaxException { >> >> > > > >> >+ if ((reference == null) || ( reference.length() == 0)) >> >> > > > >> >{ >> >> > > > >> > log.error("createMethodBinding: reference = null >> >> > > > >> > is not >> >> > allowed"); >> >> > > > >> > throw new >> >> > NullPointerException("createMethodBinding: reference = null >> >> > is not allowed"); >> >> > > > >> > } >> >> > > > >> >@@ -626,37 +587,30 @@ >> >> > > > >> > return new MethodBindingImpl(this, reference, params); >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public Validator createValidator(String validatorId) throws >> >> > FacesException >> >> > > > >> >- { >> >> > > > >> >- if ((validatorId == null) || (validatorId.length() == >> >> > > > >> >0)) >> >> > > > >> >- { >> >> > > > >> >+ public Validator createValidator(String validatorId) throws >> >> > FacesException { >> >> > > > >> >+ if ((validatorId == null) || (validatorId.length() == >> >> > > > >> >0)) { >> >> > > > >> > log.error("createValidator: validatorId = null is >> >> > > > >> > not >> >> > allowed"); >> >> > > > >> > throw new >> >> > NullPointerException("createValidator: validatorId = null >> >> > is not allowed"); >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > Class validatorClass = (Class) >> >> > _validatorClassMap.get(validatorId); >> >> > > > >> >- if (validatorClass == null) >> >> > > > >> >- { >> >> > > > >> >+ if (validatorClass == null) { >> >> > > > >> > String message = "Unknown validator id '" + >> >> > > > >> > validatorId >> >> > + "'."; >> >> > > > >> > log.error (message); >> >> > > > >> > throw new FacesException(message); >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- try >> >> > > > >> >- { >> >> > > > >> >+ try { >> >> > > > >> > return (Validator) validatorClass.newInstance(); >> >> > > > >> > } >> >> > > > >> >- catch (Exception e) >> >> > > > >> >- { >> >> > > > >> >+ catch (Exception e) { >> >> > > > >> > log.error("Could not instantiate validator " + >> >> > validatorClass, e); >> >> > > > >> > throw new FacesException("Could not instantiate >> >> > validator: " + validatorClass, e); >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public ValueBinding createValueBinding(String reference) >> >> > > > >> >throws >> >> > ReferenceSyntaxException >> >> > > > >> >- { >> >> > > > >> >- if ((reference == null) || (reference.length() == 0)) >> >> > > > >> >- { >> >> > > > >> >+ public ValueBinding createValueBinding(String reference) >> >> > > > >> >throws >> >> > ReferenceSyntaxException { >> >> > > > >> >+ if ((reference == null) || (reference.length() == 0)) { >> >> > > > >> > log.error("createValueBinding: reference = null is >> >> > > > >> > not >> >> > allowed"); >> >> > > > >> > throw new >> >> > NullPointerException("createValueBinding: reference = null >> >> > is not allowed"); >> >> > > > >> > } >> >> > > > >> >@@ -664,23 +618,19 @@ >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > >> >> > > > >> >- public String getDefaultRenderKitId() >> >> > > > >> >- { >> >> > > > >> >+ public String getDefaultRenderKitId() { >> >> > > > >> > return _defaultRenderKitId; >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public void setDefaultRenderKitId(String >> >> > > > >> >defaultRenderKitId) >> >> > > > >> >- { >> >> > > > >> >+ public void setDefaultRenderKitId(String >> >> > > > >> >defaultRenderKitId) { >> >> > > > >> > _defaultRenderKitId = defaultRenderKitId; >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public StateManager getStateManager() >> >> > > > >> >- { >> >> > > > >> >+ public StateManager getStateManager() { >> >> > > > >> > return _stateManager; >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> >- public void setStateManager(StateManager stateManager) >> >> > > > >> >- { >> >> > > > >> >+ public void setStateManager(StateManager stateManager) { >> >> > > > >> > _stateManager = stateManager; >> >> > > > >> > } >> >> > > > >> > } >> >> > > > >> > >> >> > > > >> > >> >> > > > >> > >> >> > > > >> >> >> > > > >> >> >> > > > >> >> >> > > > > >> >> > > > > >> >> > > > >-- >> >> > > > > >> >> > > > >http://www.irian.at >> >> > > > > >> >> > > > >Your JSF powerhouse - >> >> > > > >JSF Consulting, Development and >> >> > > > >Courses in English and German >> >> > > > > >> >> > > > >Professional Support for Apache MyFaces >> >> > > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > >> >> > > >> >> > > -- >> >> > > >> >> > > http://www.irian.at >> >> > > >> >> > > Your JSF powerhouse - >> >> > > JSF Consulting, Development and >> >> > > Courses in English and German >> >> > > >> >> > > Professional Support for Apache MyFaces >> >> > > >> >> > >> >> > >> >> > >> >> > -- >> >> > Grant Smith >> >> > >> >> >> > >> > >> >-- >> > >> >http://www.irian.at >> > >> >Your JSF powerhouse - >> >JSF Consulting, Development and >> >Courses in English and German >> > >> >Professional Support for Apache MyFaces >> > >> >> >> > > >-- > >http://www.irian.at > >Your JSF powerhouse - >JSF Consulting, Development and >Courses in English and German > >Professional Support for Apache MyFaces >
