You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2013/01/31 16:23:14 UTC

[jira] [Updated] (FELIX-3478) BundleWiringImpl.getResourceByDelegation uses exceptions internally -> unnecessarily slow

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

Richard S. Hall updated FELIX-3478:
-----------------------------------

    Fix Version/s:     (was: framework-4.2.0)
                   framework-4.4.0
    
> BundleWiringImpl.getResourceByDelegation uses exceptions internally -> unnecessarily slow
> -----------------------------------------------------------------------------------------
>
>                 Key: FELIX-3478
>                 URL: https://issues.apache.org/jira/browse/FELIX-3478
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-4.0.2
>         Environment: JDK 7, Ubuntu
>            Reporter: Jesse Glick
>            Priority: Minor
>             Fix For: framework-4.4.0
>
>
> Noticed a Felix-based app freezing in the event thread for a long time during startup, while looking for locale variants of an icon (most of which do not exist):
> "AWT-EventQueue-0" prio=10 tid=0x0912c400 nid=0x2612 runnable [0xd4f0a000]
>    java.lang.Thread.State: RUNNABLE
> 	at java.lang.Throwable.fillInStackTrace(Native Method)
> 	at java.lang.Throwable.fillInStackTrace(Throwable.java:782)
> 	- locked <0xd882a250> (a org.apache.felix.framework.resolver.ResourceNotFoundException)
> 	at java.lang.Throwable.<init>(Throwable.java:265)
> 	at java.lang.Exception.<init>(Exception.java:66)
> 	at org.apache.felix.framework.resolver.ResourceNotFoundException.<init>(ResourceNotFoundException.java:25)
> 	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1465)
> 	at org.apache.felix.framework.BundleWiringImpl.getResourceByDelegation(BundleWiringImpl.java:1360)
> 	at org.apache.felix.framework.Felix.getBundleResource(Felix.java:1514)
> 	at org.apache.felix.framework.BundleImpl.getResource(BundleImpl.java:628)
> Bundle.getResource can simply return null when the resource does not exist. Constructing a ResourceNotFoundException internally is a waste of time.
> Best would be for findClassOrResourceByDelegation and similar methods to just return null. If you insist on exception-based control flow, at least override fillInStackTrace in RNFE to do nothing, so it is cheaper.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira