libbluray | branch: master | hpi1 <[email protected]> | Sun May 4 17:09:11 2014 +0300| [e897820373257e4a3d4e0c5210018687955dc33a] | committer: hpi1
BDJ: fix setting File.fs in Java 8 (File.fs is declared final) > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=e897820373257e4a3d4e0c5210018687955dc33a --- src/libbluray/bdj/java/java/io/BDFileSystem.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libbluray/bdj/java/java/io/BDFileSystem.java b/src/libbluray/bdj/java/java/io/BDFileSystem.java index e99d9d0..2438145 100644 --- a/src/libbluray/bdj/java/java/io/BDFileSystem.java +++ b/src/libbluray/bdj/java/java/io/BDFileSystem.java @@ -29,6 +29,7 @@ package java.io; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.net.URL; @@ -47,6 +48,11 @@ public abstract class BDFileSystem extends FileSystem { filesystem = c.getDeclaredField("fs"); filesystem.setAccessible(true); + /* Java 8: remove "final" modifier from the field */ + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(filesystem, filesystem.getModifiers() & ~Modifier.FINAL); + FileSystem fs = (FileSystem)filesystem.get(null); if (fs instanceof BDFileSystemImpl) { //System.err.print("FileSystem already wrapped"); _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
