[ 
https://issues.apache.org/jira/browse/ARIES-1062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Ross resolved ARIES-1062.
------------------------------

    Resolution: Fixed
      Assignee: John Ross

Fixed in http://svn.apache.org/viewvc?view=revision&revision=1498639 and 
http://svn.apache.org/viewvc?view=revision&revision=1498647.
                
> org.apache.aries.subsystem.core.internal.Activator needs to be improved
> -----------------------------------------------------------------------
>
>                 Key: ARIES-1062
>                 URL: https://issues.apache.org/jira/browse/ARIES-1062
>             Project: Aries
>          Issue Type: Improvement
>          Components: Subsystem
>    Affects Versions: 1.0
>            Reporter: TangYong
>            Assignee: John Ross
>            Priority: Minor
>         Attachments: Activator.java.patch
>
>
> Currently, org.apache.aries.subsystem.core.internal.Activator class and 
> org.apache.aries.subsystem.core.internal.SubsystemResolverHookFactory class 
> have some curious coding as following:
> 1. activate()
> "new Subsystems()" can not throw SubsystemException.
> 2. addingService method
> I suggest the following writing:
>         @Override
>       public synchronized Object addingService(ServiceReference<Object> 
> reference) {
>               Object service = bundleContext.getService(reference);
>               
>               if (service instanceof IDirectoryFinder){
>                       finders.add((IDirectoryFinder)service);
>                       return service;
>               }
>               else if (service instanceof Repository){
>                       repositories.add((Repository)service);
>                       return service;
>               }
>               else if (service instanceof Coordinator){
>                       if (coordinator == null) {
>                               coordinator = (Coordinator)service;
>                       }
>               }
>               else if (service instanceof RegionDigraph) {
>                       if (regionDigraph == null) {
>                               regionDigraph = (RegionDigraph)service;
>                       }
>               }
>               else if (service instanceof Resolver) {
>                       if (resolver == null) {
>                               resolver = (Resolver)service;
>                       }
>               }
>               else if (service instanceof ModelledResourceManager) {
>                       if (modelledResourceManager == null) {
>                               modelledResourceManager = 
> (ModelledResourceManager)service;
>                       }
>               }
>               
>               activate();
>               return service;
>       }
> 3. SubsystemResolverHookFactory class's constructor
> I have never seen the following and explicitly throw NPE
> if (subsystems == null)
>  throw new NullPointerException("Missing required parameter: subsystems");
> I suggest that we'd better use RuntimeException or IllegalArgumentException

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to