If this exception is handled, why is it rethrown? What would you expect Trinidad to do in this case?
On Feb 16, 2011, at 5:37 PM, Hongbing <hongbing.w...@oracle.com> wrote: > Hi Scott: > One example is in the following UIXEditableValue.updateModel(FacesContext > context) code, > > public void updateModel(FacesContext context) > { > .... > try > { > Object localValue = getLocalValue(); > expression.setValue(context.getELContext(), localValue); > setValue(null); > setLocalValueSet(false); > if (_LOG.isFiner()) > { > _LOG.finer("Wrote value {0} to model {1} in component {2}", > new Object[]{localValue, > expression.getExpressionString(), > this}); > } > } > catch (RuntimeException e) > { > ... > > expression.setValue(context.getELContext(), localValue) calls binding code > and then the model's code, where exception can be thrown. > In the catch part, we want to skip reporting the exception if it is handled > by model/controller code. > > > Thanks, > Hongbing > > > > On 2/16/2011 4:23 PM, Scott O'Bryan wrote: >> Hogbing, >> >> I'm taking a look at the bug now but just so I understand.. When you >> refer to JSF, I assume you mean the Trinidad renderkit. Is that >> correct? >> >> Scott >> >> On Feb 16, 2011, at 4:23 PM, Hongbing<hongbing.w...@oracle.com> wrote: >> >>> Hi Pavitra: >>> It can happen in update model phase. For example, Model layer throws >>> exception when attribute value validation fails, binding layer detects it >>> and re-throwd new exception with the new interface to JSF. JSF then can >>> handle it accordingly. >>> >>> thanks, >>> Hongbing >>> >>> On 2/16/2011 2:09 PM, Pavitra Subramaniam wrote: >>>> Hello Hongbing, >>>> >>>> You mentioned that exceptions get thrown by model layer outside of JSF. >>>> Can you give an e.g., of when this might occur? >>>> How exactly will the interface get used? >>>> >>>> Thanks >>>> Pavitra >>>> >>>> >>>> >>>> On 2/16/2011 1:01 PM, Hongbing wrote: >>>>> Hi: >>>>> This is for JIRA TRINIDAD-2038, please let me know your suggestion. >>>>> >>>>> There are cases that exception is thrown in update model phase, like >>>>> model layer validation failure, by model outside of JSF and the exception >>>>> is also handled and reported outside of JSF. To avoid the component's >>>>> local value getting reset to null, JSF needs to be notified when it >>>>> happens. The proposed solution is to re-throw a special exception to JSF >>>>> to notify it and also let JSF know whether it needs to report the >>>>> exception. >>>>> >>>>> Here is the interface of the exception: >>>>> package org.apache.myfaces.trinidad.context; >>>>> >>>>> /** >>>>> * Interface for exceptions that tells whether the exception needs to be >>>>> reported. >>>>> * If an exception is thrown during JSF lifycycle and aleady reported, >>>>> then it should let >>>>> * JSF know not to report it again. >>>>> * >>>>> */ >>>>> public interface Reportable >>>>> { >>>>> >>>>> /** >>>>> * Return false if JSF doesn't need to report this exception, otherwise >>>>> true. >>>>> */ >>>>> public boolean isReportingMessage(); >>>>> >>>>> } >>>>> >>>>> Thanks, >>>>> Hongbing >>>>> >>>>>