JarFile.getVersionedEntry scalability with new release cadence

Lance Andersen lance.andersen at oracle.com
Fri Apr 10 20:55:58 UTC 2020


Hi Eric

Feel free to enter a feature request and better yet propose a fix :-)

Have a good weekend!

Best
Lance

> On Apr 10, 2020, at 2:59 PM, Eirik Bjørsnøs <eirbjo at gmail.com> wrote:
> 
> I recently needed to re-implement multi-release lookup logic for a
> ModuleReader capable of reading modules from unpacked (exploded) jar files
> [1]
> 
> It occurred to me that JarFile.getVersionedEntry checks _every_ version
> between 8 and the runtime version when looking up paths.
> 
> Since META-INF/versions will probably be sparsely populated, I'm wondering
> if something could be done to avoid checking 20 different paths in OpenJDK
> 28.
> 
> Perhaps scanning META-INF/versions once when opening the file could work,
> then only check existing versions in getVersionedEntry?
> 
> Maybe a premature optimization today, but with the new release cadence,
> this problem is going to surface at some point in the future, right?
> 
> [1]
> https://mail.openjdk.java.net/pipermail/jigsaw-dev/2020-April/014414.html
> 
> Eirik.

 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>





More information about the core-libs-dev mailing list