2007/8/27, Schaefer, Dirk Alexander <[EMAIL PROTECTED]>: > > hello all, > > this is a following up to the email sent before. > > i spend a bit more time in investigating the problem and found the > following. > > consider the following: tile is initialized using the > org.apache.tiles.definition.UrlDefinitionsFactory. > > now, when a request receives and the tiles container is instructed to > render > a specific tiles definition, the following happens (the interessing > parts): > > 1. invoke 'Definition getDefinition(String name, TilesRequestContext > tilesContext)' of UrlDefinitionFactory. > 2. from there invoke 'Definitions getDefinitions()' of > UrlDefinitionFactory. > 3. if the instance attribute 'definitions' is null, from there invoke > 'Definitions readDefinitions()' of UrlDefinitionFactory. > > within the third call the configuration is actually parsed and the > beans/instances/what ever defined within the configuration file(s) ar > created. > unfortunatelly the UrlDefinitionFactory does not synchronize the call to > the > 'Definitions readDefinitions()' method. the result is, if there are > multiple request received by the servlet container at once and there has > no > other request been received so long, we get into classical multi > threading problematics where each thread is bothering the others and the > process of creating the definitions list crashs. > > i think this is where's the rub. > > can anyone confirm this?
Great analysis Dirk! Can you open a JIRA issue for this? Thanks Antonio
