OpenJDK / loom / loom
changeset 39155:61d7981116d9
8157936: Files.size(Path p) returns 0 if path is from JrtFileSystem with exploded build
Reviewed-by: psandoz
author | sundar |
---|---|
date | Mon, 27 Jun 2016 14:55:06 +0530 |
parents | 8379e9719ad6 |
children | 92844b32bcec |
files | jdk/src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java jdk/test/jdk/internal/jrtfs/Basic.java |
diffstat | 2 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java Fri Jun 24 14:19:29 2016 -0400 +++ b/jdk/src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java Mon Jun 27 14:55:06 2016 +0530 @@ -25,6 +25,7 @@ package jdk.internal.jrtfs; import java.io.IOException; +import java.io.UncheckedIOException; import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystemException; @@ -138,6 +139,15 @@ } return children; } + + @Override + public long size() { + try { + return isDirectory() ? 0 : Files.size(path); + } catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } } @Override
--- a/jdk/test/jdk/internal/jrtfs/Basic.java Fri Jun 24 14:19:29 2016 -0400 +++ b/jdk/test/jdk/internal/jrtfs/Basic.java Mon Jun 27 14:55:06 2016 +0530 @@ -715,5 +715,14 @@ assertTrue(childCount != 0); assertEquals(dirPrefixOkayCount, childCount); } + + @Test + public void objectClassSizeTest() throws Exception { + String path = "/modules/java.base/java/lang/Object.class"; + FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); + Path classFile = fs.getPath(path); + + assertTrue(Files.size(classFile) > 0L); + } }