[seam-issues] [JBoss JIRA] Commented: (JBSEAM-4669) Major java deadlock between BijectionInterceptor and Component since the getInstanceFromFactory method is synchronized

Denis Forveille (JIRA) jira-events at lists.jboss.org
Wed Jun 23 12:08:46 EDT 2010


    [ https://jira.jboss.org/browse/JBSEAM-4669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12536817#action_12536817 ] 

Denis Forveille commented on JBSEAM-4669:
-----------------------------------------

The scenario is different that the one in ConcurrentFactoryTest 
The component where the problem arises looks like this:

@Name("enginMetadonnee")
@Scope(ScopeType.APPLICATION)
public class FabriqueEnginMetadonnee implements Serializable {
   ...
   private EnginMetadonnee   enginMetadonnee;

   @In
   private TypePromotionManager typePromotionManager;

   @Create
   public void initialiser() throws Exception {
       ...
      List<TypePromotion> typesPromotions = typePromotionManager.obtenirTypesPromotions();
      ... 
      this.enginMetadonnee = new EnginMetadonneeBase(typesPromotions );
   }

   @Unwrap
   public EnginMetadonnee getEnginMetadonnee() {
      return this.enginMetadonnee;
   }

TypePromotionManager  si also an application scope component.
I think the key thing here is the injection of a component (typePromotionManager) in the component that holds the "@Unwrap" annotation and so, each type the getEnginMetadonnee()method is called, BijectionInterceptor injects typePromotionManager in the holding component

BTW integration tests don't run on my workstation, I think I need to install JBoss or something..
Maybe you could try to reproduce this in "ConcurrentFactoryTest"




> Major java deadlock between BijectionInterceptor and Component since the getInstanceFromFactory method  is synchronized
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-4669
>                 URL: https://jira.jboss.org/browse/JBSEAM-4669
>             Project: Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.2.1.CR2
>            Reporter: Denis Forveille
>            Assignee: Denis Forveille
>            Priority: Blocker
>             Fix For: 2.2.1.CR2
>
>
> To address JBSEAM-2419, the Component.getInstanceFromFactory(String name) is now "synchronized"
> This causes java deadlocks under stress with the call to lock.lock() in BinjectionInterceptor ...
> For us our apps freezes after 10 minutes in production,,,
> I don't know why this method has been marked as synchronized but this is the cause of the deadlock...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list