ClassCastException in Wrapper.unwrap() when calling Resolver.add(x implements 
Resource)
---------------------------------------------------------------------------------------

                 Key: FELIX-2306
                 URL: https://issues.apache.org/jira/browse/FELIX-2306
             Project: Felix
          Issue Type: Bug
          Components: Bundle Repository (OBR)
    Affects Versions: bundlerepository-1.6.0
         Environment: Windows 7, Java 6
            Reporter: Mark Nuttall


This looks like a regression from OBR 1.4.1 to 1.6.  I have a resource class 
that implements org.osgi.service.obr.Resource. When I call 
Resolver.add(myResource) I
get a ClassCastException:

Caused by: java.lang.ClassCastException:my.resources.MyResource
incompatible with
org.apache.felix.bundlerepository.impl.wrapper.ResourceWrapper
       at 
org.apache.felix.bundlerepository.impl.wrapper.Wrapper.unwrap(Wrapper.java:59)
       at 
org.apache.felix.bundlerepository.impl.wrapper.ResolverWrapper.add(ResolverWrapper.java:40)
       at my.provisioning.impl.OBRProvisioner.resolve(OBRProvisioner.java:496)

Looking at Wrapper.java:

   public static Resource unwrap(org.osgi.service.obr.Resource resource) {
       return ((ResourceWrapper) resource).resource;
   }

I've passed in a class that implemented obr.Resource which this code is 
attempting to cast to ResourceWrapper: this fails. We got there via,

  // ResolverWrapper.java
  public void add(org.osgi.service.obr.Resource resource) {
       resolver.add(Wrapper.unwrap(resource));
   }

At no time was my Resource wrapped before it was unwrapped. 

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

Reply via email to