Christian Schneider created DOSGI-137:
-----------------------------------------

             Summary: Possible bug in TopologyManagerImport when checking if an 
Endpoint is already imported
                 Key: DOSGI-137
                 URL: https://issues.apache.org/jira/browse/DOSGI-137
             Project: CXF Distributed OSGi
          Issue Type: Bug
    Affects Versions: 1.3.1
            Reporter: Christian Schneider
            Assignee: Christian Schneider
             Fix For: 1.4


In TopologyManagerImport.importServices we seem to check if we already imported 
an endpoint. (See snippet below).

----
    private void importServices(String filter) {        
        List<ImportRegistration> importRegistrations = 
getImportedServices(filter);
        for (EndpointDescription epd : importPossibilities.get(filter)) {
            if (!importRegistrations.contains(epd)) {
----

I have two concerns with this:

1. importRegistrations is a List<ImportRegistration> but we check using 
contains(epd) which is an EndpointDescription. I think this can never return 
true.

I have prepared a code that can fix this:
    private boolean alreadyImported(EndpointDescription epd, 
List<ImportRegistration> importRegistrations) {
        for (ImportRegistration ir : importRegistrations) {
            if (epd.equals(ir.getImportReference().getImportedEndpoint())) {
                return true;
            }
        }
        return false;
    }
As soon as I fix it though the second concern below may be an issue.

2. We only have one list of ImportRegistrations. In case a RemoteServiceAdmin 
is added this means that we would not add it to this new RemoteServiceAdmin. So 
the question here is: Do we want to import each service with each RSA or only 
with one?


So any ideas how to proceed here?


--
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