aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joseph Chacko (Jira)" <j...@apache.org>
Subject [jira] [Comment Edited] (ARIES-2000) OSGiObjectFactoryBuilder.getObjectInstance incorrectly delegates to OSGiURLContextFactory to resolve non-url scheme string
Date Mon, 14 Sep 2020 16:38:00 GMT

    [ https://issues.apache.org/jira/browse/ARIES-2000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17195574#comment-17195574
] 

Joseph Chacko edited comment on ARIES-2000 at 9/14/20, 4:37 PM:
----------------------------------------------------------------

Consider the method {{ObjectFactoryHelper.getObjectInstanceUsingObjectFactories()}} in the
stack trace.
 * Before the change, it tries all registered {{ObjectFactory}} services and swallows any
naming exceptions, which violates the spec ??OSGi Compendium Release 7 §126.4 JNDI Provider
Admin Service??
 * After the change, it tries all registered {{ObjectFactory}} services and propagates any
naming exceptions.

Arguably, {{URLContextFactory}} services could be excluded from this search, even though
the spec requires them to be registered as {{ObjectFactory}} services ??OSGi Compendium Release
7 §126.5.5 URL Context Provider??


was (Author: joechacko):
Consider the method {{ObjectFactoryHelper.getObjectInstanceUsingObjectFactories()}} in the
stack trace.

Before the change, it tries all registered {{ObjectFactory}} services and swallows any naming
exceptions, which violates the spec ??OSGi Compendium Release 7 §126.4 JNDI Provider Admin
Service??

After the change, it tries all registered {{ObjectFactory}} services and propagates any naming
exceptions.

Arguably, {{URLContextFactory}} services could be excluded from this search, even though
the spec requires them to be registered as {{ObjectFactory}} services ??OSGi Compendium Release
7 §126.5.5 URL Context Provider??

> OSGiObjectFactoryBuilder.getObjectInstance incorrectly delegates to OSGiURLContextFactory
to resolve non-url scheme string
> --------------------------------------------------------------------------------------------------------------------------
>
>                 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 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)

Mime
View raw message