You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2019/07/05 22:54:00 UTC

[jira] [Work logged] (BCEL-320) A new ClassPathRepository that can scan many JAR files without OutOfMemoryError

     [ https://issues.apache.org/jira/browse/BCEL-320?focusedWorklogId=272769&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-272769 ]

ASF GitHub Bot logged work on BCEL-320:
---------------------------------------

                Author: ASF GitHub Bot
            Created on: 05/Jul/19 22:53
            Start Date: 05/Jul/19 22:53
    Worklog Time Spent: 10m 
      Work Description: garydgregory commented on pull request #28: [BCEL-320] LruCacheClassPathRepository
URL: https://github.com/apache/commons-bcel/pull/28
 
 
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 272769)
    Time Spent: 20m  (was: 10m)

> A new ClassPathRepository that can scan many JAR files without OutOfMemoryError
> -------------------------------------------------------------------------------
>
>                 Key: BCEL-320
>                 URL: https://issues.apache.org/jira/browse/BCEL-320
>             Project: Commons BCEL
>          Issue Type: Improvement
>            Reporter: Tomo Suzuki
>            Priority: Minor
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> (This ticket is derivation from [BCEL-317|https://issues.apache.org/jira/browse/BCEL-317], which I found creating ConstantUtf8 cache is not straightforward under current ClassPathRepository design.)
> We use BCEL library in https://github.com/GoogleCloudPlatform/cloud-opensource-java . Thank you for great library.
> h1. Background
> Our use of BCEL ClassPathRepository and MemorySensitiveClassPathRepository causes OutOfMemoryError when they scan many (~200) JAR files. Initially I thought this problem could be fixed by [BCEL-317|https://issues.apache.org/jira/browse/BCEL-317], but it turned out that it's not straightforward under current design. Instead of focusing on ConstantUtf8, I decided to use my own custom ClassPathRepository that uses LRU cache internally to hold JavaClass instances. It worked.
> This ticket is to contribute the idea to BCEL library so that other users can benefit from it.
> h1. Test Case
> This GitHub project is a example of OutOfMemoryError caused by scanning many JAR files using BCEL ClassPathRepository and MemorySensitiveClassPathRepository:
> https://github.com/suztomo/bcel-oome-example



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)