felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (FELIX-934) Bootdelegation bug
Date Wed, 11 Feb 2009 15:06:59 GMT

     [ https://issues.apache.org/jira/browse/FELIX-934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Richard S. Hall resolved FELIX-934.
-----------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: felix-1.4.1)
                   felix-1.6.0

Yes, you are correct. The condition should have been:

    if ((m_bootPkgWildcards[i] &&
        (pkgName.startsWith(m_bootPkgs[i]) ||
        pkgName.regionMatches(0, m_bootPkgs[i], 0, m_bootPkgs[i].length() - 1)))
        || (!m_bootPkgWildcards[i] && m_bootPkgs[i].equals(pkgName)))

This correctly checks for subpackages with "startsWith()" or an exact match of a wildcarded
package with "regionMatches()".

Please close this bug if you are satisfied and thanks for reporting it!

> Bootdelegation bug
> ------------------
>
>                 Key: FELIX-934
>                 URL: https://issues.apache.org/jira/browse/FELIX-934
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.1
>         Environment: All
>            Reporter: Robert Koszegi
>            Assignee: Richard S. Hall
>             Fix For: felix-1.6.0
>
>
> Bootdelegation does not work as supposed in 1.4.1
> Let's say I provide the following parameter at startup org.osgi.framework.bootdelegation=org.acme.foo.bar.*
> Then the class org.acme.foo.bar.ClassA should be loaded by the boot classloader meanwhile
org.acme.foo.ClassB should not, however currently both classes will be loaded by the boot
classloader.
> This is due to a bug in R4SearchPolicyCore with checking if the bootdelegation should
be applied for a given package:
> if ((m_bootPkgWildcards[i] &&
>                     (pkgName.startsWith(m_bootPkgs[i]) ||
>                     m_bootPkgs[i].regionMatches(0, pkgName, 0, pkgName.length())))
>                     || (!m_bootPkgWildcards[i] && m_bootPkgs[i].equals(pkgName)))

> That is  m_bootPkgs[i].regionMatches(0, pkgName, 0, pkgName.length()) will pass for org.acme.foo
if the bootdelegation is set for org.acme.foo.bar.* - but it should not!
> Regards,
> Robert

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message