myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "simon.kitching@chello.at" <simon.kitch...@chello.at>
Subject Re: FacesContext.getCurrentInstance() provoking StackTraceException on initialization
Date Wed, 27 Feb 2008 16:10:57 GMT
Sochor Zdeněk schrieb:
> Hi,
>  comments inline
>
> simon.kitching@chello.at napsal(a):
>> Hi Bruno,
>>
>> Bruno Aranda schrieb:
>>  
>>> Hi,
>>>
>>> I have a webapp with the combination
>>>
>>> myfaces core 1.2.3-SNAPSHOT
>>> trinidad 1.2.7-SNAPSHOT
>>> orchestra-core 1.1-SNAPSHOT
>>> and others (Facelets, Spring...)
>>>
>>> This used to work a weeks ago, but today I was trying to start it
>>> again and on initialization this exception happens:
>>>
>>> 2008-02-27 13:23:37,991 [btpool0-1] DEBUG (JsfFrameworkAdapter,57) -
>>> Beginning request
>>> 2008-02-27 13:23:37,992 [btpool0-1] DEBUG
>>> (OrchestraFacesContextFactory$1,114) - Running inithandler of type
>>> java.util.LinkedList$ListItr
>>> 2008-02-27 13:23:37,997 [btpool0-1] DEBUG
>>> (OrchestraFacesContextFactory$1,114) - Running inithandler of type
>>> java.util.LinkedList$ListItr
>>> 2008-02-27 13:23:38,365 [btpool0-1] DEBUG
>>> (OrchestraFacesContextFactory$1,129) - Running release
>>> 2008-02-27 13:23:38,368 [btpool0-1] DEBUG (JsfFrameworkAdapter,69) -
>>> Ending request
>>>     
> timed :38,368
>>> 2008-02-27 13:23:38.260::WARN:  Error for
>>> /intact/intact-search-webapp/search.xhtml
>>>     
> timed :38.260
> -> sooner than previous logged message (by 108 ms)
> (It also use other format than DEBUG leveled messages)

Well spotted, Zdenek!

> Time shows issue raised IN Orchestra (it's before releasing work of
> Orchestra)

Well, it shows that the problem did occur between orchestra "running
initHandler" and "running release". That does explain a few things.

When a FacesContext is created for a new request, Orchestra tries to run
a sequence of "initHandlers". If an exception happens in one of the
initHandlers then it immediately runs the "release" methods of the
initHandlers that successfully initialised, so that they can release any
resources they acquired.

One of these initHandlers must be triggering this infinite loop somehow.
This *is* code that changed recently, and is almost certainly the root
of the problem. It's some kind of unexpected interaction with Trinidad
though, as this process works fine without Trinidad in the mix. I
suspect that Trinidad is also wrapping the FacesContext, and then does
not like its wrapper being called so early in the jsf lifecycle.

Unfortunately I'm off on holiday for 4 days so can't help with debugging
right now. Anyway, I don't use trinidad so would not be able to
duplicate the problem locally.

To debug this issue, you probably need to put a breakpoint at
    OrchestraFacesContextFactory.getFacesContext
then trace from there.

Regards,
Simon


Mime
View raw message