Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
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
- links to