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