[ 
http://issues.apache.org/jira/browse/HIVEMIND-155?page=comments#action_12356782 
] 

James Carman commented on HIVEMIND-155:
---------------------------------------

Don't forget to mention that the reason that this fails is that your 
constructor actually tries to call a method on the object passed into the 
constructor (which is a proxy to the method that's being created by the 
constructor).  So, you're trying to invoke a method before the object is 
actually created.  Do we really need to support this?  What is the use case 
here?

> Infinite Recusion Issue When Creating a Service
> -----------------------------------------------
>
>          Key: HIVEMIND-155
>          URL: http://issues.apache.org/jira/browse/HIVEMIND-155
>      Project: HiveMind
>         Type: Bug
>   Components: framework
>     Versions: 1.1
>  Environment: Windows XP
>     Reporter: Jean Safar

>
> I am experiencing a problem by which HiveMind (version 1.1 and 1.1-beta-3) 
> will enter into a infinite recursion when creating a service. This eventually 
> exhausts all the available memory and makes the program unusable. 
>  
> I have a Service Class MyService implementing the interface IMyService. 
>  
> This class has a constructor public MyService (IMyService) {...} as well as 
> other constructors. 
>  
> The service point of my service has no parameters or explicit injection via 
> <set-service.
>  
> When creating the service, it will eventually arrive at a the following test 
> within the method instantiateCoreServiceInstance in BuildFactoryLogic.
>  
>         if (_parameter.getAutowireServices() && parameters.isEmpty())
>         {
>             return instantiateConstructorAutowiredInstance(serviceClass);
>         }
>  
> This test will be satisfied and the instantiateConstructorAutowiredInstance  
> will then be called. 
>  
> In it will try and get all the constructors for the given class removing 
> those not taking interfaces as parameters. 
>  
> List serviceConstructorCandidates = 
> getOrderedServiceConstructors(serviceClass);
>  
> One of this constructor will be the one with IMyService in it. If with bad 
> luck it comes first in the iteration that follows, the code will try and call 
> the constructor with parameters which are services attached to the interfaces 
> of the parameters. 
>  
> Since the interface is the very interface of the service I am trying to 
> build, it will enter the loop and never come back. 
>  
> An easy and effective fix might be to disregard constructors with the 
> interface of the service it is currently trying to build thus avoiding the 
> loop. I have tried that and it works fine. 

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to