Uploaded image for project: 'Aries'
  1. Aries
  2. ARIES-2000

OSGiObjectFactoryBuilder.getObjectInstance() incorrectly propagates exceptions from ObjectFactory.getObjectInstance()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • jndi-core-1.1.0
    • JNDI
    • None
    • This was discovered when using Apache Aries in OpenLiberty.

    Description

      The OsgiURLContextFactory.getObjectInstance() method throws an InvalidNameException if the value passed in is a String that does not start with the "osgi:" or "aries:" protocol specifiers. 

      According to the OSGi JNDI Services specification (OSGi Compendium Release 7, section 126.5.5), a URLContextFactory object should be looked up from the service registry, filtering on the osgi.jndi.url.scheme property to choose the right one for the protocol. The OsgiURLContextFactory is behaving correctly but is being invoked inappropriately by the OSGiObjectFactoryBuilder.

      javax.naming.InvalidNameException: First
        at org.apache.aries.jndi.url.OsgiNameParser.parse(OsgiNameParser.java:46)
        at org.apache.aries.jndi.url.ServiceRegistryContext.parse(ServiceRegistryContext.java:134)
        at org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:138)
        at org.apache.aries.jndi.url.OsgiURLContextFactory.findAny(OsgiURLContextFactory.java:70)
        at org.apache.aries.jndi.url.OsgiURLContextFactory.getObjectInstance(OsgiURLContextFactory.java:49)
        at org.apache.aries.jndi.ObjectFactoryHelper.getObjectFromFactory(ObjectFactoryHelper.java:260)
        at org.apache.aries.jndi.ObjectFactoryHelper.getObjectInstanceUsingObjectFactories(ObjectFactoryHelper.java:123)
        at org.apache.aries.jndi.ObjectFactoryHelper.doGetObjectInstance(ObjectFactoryHelper.java:99)
        at org.apache.aries.jndi.ObjectFactoryHelper.lambda$getObjectInstance$0(ObjectFactoryHelper.java:62)
        at org.apache.aries.jndi.ObjectFactoryHelper$$Lambda$19/000000008EF85C30.call(Unknown Source)
        at org.apache.aries.jndi.Utils.doPrivilegedE(Utils.java:158)
        at org.apache.aries.jndi.ObjectFactoryHelper.getObjectInstance(ObjectFactoryHelper.java:62)
        at org.apache.aries.jndi.OSGiObjectFactoryBuilder.getObjectInstance(OSGiObjectFactoryBuilder.java:66)
        at org.apache.aries.jndi.OSGiObjectFactoryBuilder.getObjectInstance(OSGiObjectFactoryBuilder.java:48)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:311)
        at com.ibm.ws.jndi.internal.WSContext.resolveObject(WSContext.java:157)
        at com.ibm.ws.jndi.internal.WSContext.lookup(WSContext.java:309)
        at com.ibm.ws.jndi.WSContextBase.lookup(WSContextBase.java:61)
        at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:149)
        at javax.naming.InitialContext.lookup(InitialContext.java:428)

       

      Attachments

        Issue Links

          Activity

            People

              sbratton Sam Bratton
              joechacko Joseph Chacko
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: