[ https://issues.apache.org/jira/browse/ARIES-2000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joseph Chacko updated ARIES-2000: --------------------------------- 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 API documentation, it should handle this condition and return null since as an OSGI service it can never be truly sure that some other {{ObjectFactory}} service will not be able to process the value. {{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) was: 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 API documentation, it should handle this condition and return null since as an OSGI service it can never be truly sure that some other {{ObjectFactory}} service will not be able to process the value. {{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)}} > OsgiURLContextFactory.getObjectInstance() throws InvalidNameException but > should just return null > ------------------------------------------------------------------------------------------------- > > Key: ARIES-2000 > URL: https://issues.apache.org/jira/browse/ARIES-2000 > Project: Aries > Issue Type: Bug > Components: JNDI > Affects Versions: proxy-impl-1.1.8 > Environment: This was discovered when using Apache Aries in > OpenLiberty. > Reporter: Joseph Chacko > Priority: Major > > 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 API documentation, it should handle this condition and return null since > as an OSGI service it can never be truly sure that some other > {{ObjectFactory}} service will not be able to process the value. > {{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) > -- This message was sent by Atlassian Jira (v8.3.4#803005)