You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Guillaume Nodet (JIRA)" <ji...@apache.org> on 2009/05/07 14:52:30 UTC

[jira] Created: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: FELIX-1131
                 URL: https://issues.apache.org/jira/browse/FELIX-1131
             Project: Felix
          Issue Type: Bug
          Components: Framework
    Affects Versions: felix-1.6.0
            Reporter: Guillaume Nodet


 * bundle A defines an interface R and a class S in different packages, whith S implementing R
 * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
 * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T

in this case, the line 426 of ServiceRegistrationImpl is executed:

                       allow = getServiceRegistration().isClassAccessible(requestClass);

which looks like:

   protected boolean isClassAccessible(Class clazz)
   {
       try
       {
           // Try to load from the service object or service factory class.
           Class sourceClass = (m_factory != null)
               ? m_factory.getClass() : m_svcObj.getClass();
           Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
           return (targetClass == clazz);
       }
       catch (Exception ex)
       {
           // Ignore this and return false.
       }
       return false;
   }

So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707049#action_12707049 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

The only thing we could do in this case is get the service object and test that, which loses lazy creation.

The real question here is whether or not we should be forced to do this, since this example shows, it may not be sufficient to look at the factory class, since it could be registering something via reflection and may not be wired to the same definition of the package as the service object. In other words, we might always have to get the service object eagerly. Thoughts?

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707127#action_12707127 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

Thinking about this some more, I believe that even though service factories were not necessarily intended to address laziness, it is the case that this is a major use case nowadays (e.g., iPOJO, DS, etc.), so breaking this by eagerly getting the service object would be a mistake.

The use case here is not particularly clear to me, but I would have to almost say it is invalid. The situation for the framework is that it needs to try to make some sort of good faith guarantee for the client that it won't get a class cast exception. It can only do this based on knowledge of the provider and the client.

This use case basically hides the provider and wants to get a guarantee from the framework that everything will be okay for the client. That doesn't really seem possible. Is it possible that bundle C could register the service factory using the bundle context of whoever the actual provider is, which does have a wire for the package?

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712302#action_12712302 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

So, can we close this?

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard S. Hall resolved FELIX-1131.
------------------------------------

    Resolution: Invalid
      Assignee: Richard S. Hall

I am closing this for now. I think the current behavior is correct as far as the spec is concerned.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>            Assignee: Richard S. Hall
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708942#action_12708942 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

The JavaDoc sort of says the opposite, see #2 below:

"This method performs the following checks:
1 Get the package name from the specified class name.
2 For the bundle that registered the service referenced by this ServiceReference
(registrant bundle); find the source for the package. If no source is
found then return true if the registrant bundle is equal to the specified
bundle; otherwise return false.
3 If the package source of the registrant bundle is equal to the package
source of the specified bundle then return true; otherwise return false."

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Guillaume Nodet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708924#action_12708924 ] 

Guillaume Nodet commented on FELIX-1131:
----------------------------------------

Just had a chat with Peter Kriens and B.J. about that and their answer was that the isAssignable should only fail if you *know* that the classes are incompatible (wired to different packages).
So if the exporter has no wire to the package, we should just return true and not try to load the class at all.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708950#action_12708950 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

Yeah, if you can stop reading a sentence whenever you like you can probably make the spec bend to any interpretation. :-)

The full sentence is:

"If no source is found then return true if the registrant bundle is equal to the specified bundle; otherwise return false."

Notice the "...return true if..." portion.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Guillaume Nodet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709298#action_12709298 ] 

Guillaume Nodet commented on FELIX-1131:
----------------------------------------

Right.  This means the framework is more conservative.
 I guess this means we should then return false.  We still need to avoid the class loading imho.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Guillaume Nodet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708945#action_12708945 ] 

Guillaume Nodet commented on FELIX-1131:
----------------------------------------

Well, my understanding of "if no source if found then returns true" is not really ambiguous.
IIUC, this is the case when no provider wire is found, so we should just return true.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-1131) ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709391#action_12709391 ] 

Richard S. Hall commented on FELIX-1131:
----------------------------------------

I agree we should avoid loading the class, so the question remains...how do you resolve your situation? It would be nice if we could find some way to improve the check, but I don't see how in this case. Even if you registered the factory using B's context, it wouldn't solve the issue if I understand correctly.

> ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1131
>                 URL: https://issues.apache.org/jira/browse/FELIX-1131
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.6.0
>            Reporter: Guillaume Nodet
>
>  * bundle A defines an interface R and a class S in different packages, whith S implementing R
>  * bundle B defines a class T extending S, it has an import statement on S package, but not on R package
>  * bundle C defines a ServiceFactory that export T service without any import on any package from R, S, T
> in this case, the line 426 of ServiceRegistrationImpl is executed:
>                        allow = getServiceRegistration().isClassAccessible(requestClass);
> which looks like:
>    protected boolean isClassAccessible(Class clazz)
>    {
>        try
>        {
>            // Try to load from the service object or service factory class.
>            Class sourceClass = (m_factory != null)
>                ? m_factory.getClass() : m_svcObj.getClass();
>            Class targetClass = Util.loadClassUsingClass(sourceClass, clazz.getName());
>            return (targetClass == clazz);
>        }
>        catch (Exception ex)
>        {
>            // Ignore this and return false.
>        }
>        return false;
>    }
> So felix checks if the classloader used to load the factory can also load the interface, which is not the case in my example.
> So isClassAccessible returns false and the event is not dispatched to the service listener.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.