diff --git a/src/classes/modules/java.base/jdk/internal/misc/JavaNetUriAccess.java b/src/classes/modules/java.base/jdk/internal/misc/JavaNetUriAccess.java new file mode 100644 index 00000000..de2dcaf9 --- /dev/null +++ b/src/classes/modules/java.base/jdk/internal/misc/JavaNetUriAccess.java @@ -0,0 +1,5 @@ +package jdk.internal.misc; + +public interface JavaNetUriAccess { + // We can add more necessary methods here +} diff --git a/src/classes/modules/java.base/jdk/internal/misc/SharedSecrets.java b/src/classes/modules/java.base/jdk/internal/misc/SharedSecrets.java index 227f25fc..afa247f8 100644 --- a/src/classes/modules/java.base/jdk/internal/misc/SharedSecrets.java +++ b/src/classes/modules/java.base/jdk/internal/misc/SharedSecrets.java @@ -63,6 +63,7 @@ public class SharedSecrets { private static JavaObjectInputStreamAccess javaObjectInputStreamAccess; private static JavaObjectInputFilterAccess javaObjectInputFilterAccess; private static JavaObjectInputStreamReadString javaObjectInputStreamReadString; + private static JavaNetUriAccess javaNetUriAccess; // (required for EnumSet ops) public static JavaLangAccess getJavaLangAccess() { @@ -207,4 +208,12 @@ public static JavaObjectInputStreamReadString getJavaObjectInputStreamReadString public static void setJavaObjectInputStreamReadString(JavaObjectInputStreamReadString access) { javaObjectInputStreamReadString = access; } + + public static void setJavaNetUriAccess(JavaNetUriAccess jnua) { + javaNetUriAccess = jnua; + } + + public static JavaNetUriAccess getJavaNetUriAccess() { + return javaNetUriAccess; + } } diff --git a/src/tests/gov/nasa/jpf/test/java/io/FileTest.java b/src/tests/gov/nasa/jpf/test/java/io/FileTest.java index 42db2b23..b891f76f 100644 --- a/src/tests/gov/nasa/jpf/test/java/io/FileTest.java +++ b/src/tests/gov/nasa/jpf/test/java/io/FileTest.java @@ -23,6 +23,8 @@ import java.io.File; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import org.junit.After; import org.junit.AfterClass; @@ -102,5 +104,21 @@ public void testEquals() { assert file.equals(new Object()) == false; } } - + + @Test + public void testToURI(){ + if(verifyNoPropertyViolation()){ + File file = new File("testfile.txt"); + URI expectedURI = null; + try { + expectedURI = new URI("file:" + file.getAbsolutePath()); + } catch (URISyntaxException e) { + fail("URISyntaxException thrown while constructing expected URI"); + } + + URI actualURI = file.toURI(); + System.out.println(actualURI); + assertEquals("The URIs should be equal",expectedURI,actualURI); + } + } }