[ https://issues.apache.org/jira/browse/ARIES-2000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joseph Chacko updated ARIES-2000: --------------------------------- Summary: OSGiObjectFactoryBuilder.getObjectInstance() incorrectly propagates exceptions from ObjectFactory.getObjectInstance() (was: OSGiObjectFactoryBuilder.getObjectInstance incorrectly delegates to OSGiURLContextFactory to resolve non-url scheme string) > OSGiObjectFactoryBuilder.getObjectInstance() incorrectly propagates > exceptions from ObjectFactory.getObjectInstance() > --------------------------------------------------------------------------------------------------------------------- > > Key: ARIES-2000 > URL: https://issues.apache.org/jira/browse/ARIES-2000 > Project: Aries > Issue Type: Bug > Components: JNDI > Environment: This was discovered when using Apache Aries in > OpenLiberty. > Reporter: Joseph Chacko > Assignee: Jean-Baptiste Onofré > Priority: Major > Fix For: jndi-core-1.1.0 > > > 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) > -- This message was sent by Atlassian Jira (v8.3.4#803005)