>From: Hermod Opstvedt <[EMAIL PROTECTED]> > > Hi > > You are right. This is happening further up the stack, and as far as I have > been able to determine, it has to do with the extension mapping with faces > and Clay. So now I am trying to sort this out. >
I took another look at the stack trace and it looks like it's being delegated through the PropertyResovlers. My statement about this being a function of the JSF runtime was not 100% correct :-). Are you using the shale-spring integration? It looks like the jar is there. Is the context listener added you the web.xml for spring and the applicationContext.xml in the WEB-INF? <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> You might try removing the spring libraries just to reduce the fault domain. Gary > Hermod > > -----Opprinnelig melding----- > Fra: Gary VanMatre [mailto:[EMAIL PROTECTED] > Sendt: 1. april 2006 00:13 > Til: Struts Users Mailing List; [EMAIL PROTECTED] > Emne: Re: SV: [Shale] Backingbean beeing created twice > > >From: Hermod Opstvedt > > > > Hi > > > > I applied your patch, but my backing bean is still beeing created twice. > > > > Once in restoreView, and then again in createView > > > > What scope is you managed bean defined in? If your bean is not defined in a > scope (NONE), it will be created each time. > > This patch has more to do with invoking the "init()" and "destroy()" methods > more than once per view controller. The JSF runtime handles creating > managed beans and caching them in the correct scope. > > The view controller init() and other callback methods are invoked on a > managed bean after the JSF runtime has returned an object instance. So the > "init()" method in the view controller should not be confused with an > object's constructor. > > > > I read from you mail identifying this, that you where looking for some > > feedback from someone (Craig?). > > > > Yeah, I was wanting for Craig to take a look. This is kind of his domain > and I might not have a full picture. > > > > If anything is a showstopper, this one definitly is! > > > > Hermod > > > Gary > > > > > -----Original Message----- > > From: Hermod Opstvedt [mailto:[EMAIL PROTECTED] > > Sent: Friday, March 31, 2006 6:52 AM > > To: 'Struts Users Mailing List' > > Subject: SV: [Shale] Backingbean beeing created twice > > > > > > Hi > > > > I'll look at the trace from the debugger for both instance creations and > > confirm this. > > > > Hermod > > > > -----Opprinnelig melding----- > > Fra: Gary VanMatre [mailto:[EMAIL PROTECTED] > > Sendt: 31. mars 2006 00:47 > > Til: Struts Users Mailing List > > Emne: Re: [Shale] Backingbean beeing created twice > > > > >From: "Craig McClanahan" > > > > > > On 3/30/06, Hermod Opstvedt wrote: > > > > > > > > Hi > > > > > > > > I am seeing some odd behaviour in my Shale/Clay application. My > > > > backingbean > > > > (ie ViewController) is being created twice, meaning I have 2 instances > > > of > > > > it. I was wondering if this is expected behaviour or if this is a bug. > > > > > From > > > > the stacktrace: > > > > > > > > > How are you locating these two instances? Printing stuff in the > > > constructor? I don't see how you could ever end up with two request > scope > > > instances under one name. > > > > > > > The called twice to the int() might be related to this bug: > > http://issues.apache.org/bugzilla/show_bug.cgi?id=38000 > > > > The behavior on a postback when you navigate back to the same page is: > > init() - invoked from resortView() > > int() - invoked from createView() > > > > prerender() > > prerender() > > destroy() > > destroy() > > > > The destroy is called twice because the view controller is added twice to > > the > > list that the phase listener uses to callback on the prerender and > destroy. > > > > Gary > > > > > ResultatPage.() line: 71 > > > > NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) > line: > > > > not > > > > available [native method] > > > > > > > > > This exception implies that the constructor threw an exception, which > > would > > > cause the managed bean creation to fail, so no instance would ever get > > > installed in scope. Every time an expression containing this managed > bean > > > name is evaluated, it will see "aha, there's no bean yet, so try to > create > > > > > one" -- and, I would assume, every attempt will fail. But its not > > > surprising to see multiple attempts if your constructor is throwing > > > exceptions. > > > > > > If the bean is a view controller, try moving the setup logic to the > init() > > > > > method instead of the constructor. Even if an exception is still thrown, > > > > the initial attempt to create the bean will succeed, so you won't get > > > multiple failed instantiation attempts. > > > > > > Craig > > > > > > NativeConstructorAccessorImpl.newInstance(Object[]) line: 39 > > > > DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27 > > > > Constructor.newInstance(Object...) line: 494 > > > > Class.newInstance0() line: 350 > > > > Class.newInstance() line: 303 > > > > ClassUtils.newInstance(Class) line: 274 > > > > ClassUtils.newInstance(String) line: 265 > > > > ManagedBeanBuilder.buildManagedBean(FacesContext, ManagedBean) line: > 49 > > > > VariableResolverImpl.resolveVariable(FacesContext, String) line: 311 > > > > > ShaleVariableResolver.resolveVariable(FacesContext, String) line: 152 > > > > DelegatingVariableResolver.resolveVariable(FacesContext, String) line: > > 110 > > > > WebApplicationContextVariableResolver.resolveVariable(FacesContext, > > > > String) > > > > line: 87 > > > > ViewViewHandler.setupViewController(FacesContext, UIViewRoot, String, > > > > > boolean) line: 233 > > > > ViewViewHandler.restoreView(FacesContext, String) line: 160 > > > > ... > > > > > > > > > > > > Hermod > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * > > > > This email with attachments is solely for the use of the individual or > > entity to whom it is addressed. Please also be aware that the DnB NOR > Group > > cannot accept any payment orders or other legally binding correspondence > > with > > customers as a part of an email. > > > > This email message has been virus checked by the virus programs used > > in the DnB NOR Group. > > > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >