--- old/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java 2016-07-18 00:51:52.578642771 -0700 +++ new/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java 2016-07-18 00:51:52.451706272 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ package transform; import java.io.File; +import java.io.FilePermission; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -32,7 +33,10 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; +import jaxp.library.JAXPTestUtilities; + import org.testng.Assert; +import org.testng.annotations.Listeners; import org.testng.annotations.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -41,48 +45,46 @@ * @bug 6551600 * @summary Test using UNC path as StreamResult. */ +@Listeners({ jaxp.library.BasePolicy.class }) public class CR6551600Test { @Test public final void testUNCPath() { - String hostName = ""; - try { - hostName = java.net.InetAddress.getLocalHost().getHostName(); - } catch (java.net.UnknownHostException e) { - // falls through - } - - String path = "\\\\" + hostName + "\\C$\\xslt_unc_test.xml"; - String os = System.getProperty("os.name"); - if (os.indexOf("Windows") < 0) { - path = "///tmp/test.xml"; - } - else { - policy.PolicyUtil.changePolicy(getClass().getResource("CR6551600.policy").getFile()); - } - - try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.newDocument(); - Element root = doc.createElement("test"); - doc.appendChild(root); - // create an identity transform - Transformer t = TransformerFactory.newInstance().newTransformer(); - File f = new File(path); - StreamResult result = new StreamResult(f); - DOMSource source = new DOMSource(doc); - System.out.println("Writing to " + f); - t.transform(source, result); - } catch (Exception e) { - // unexpected failure - e.printStackTrace(); - Assert.fail(e.toString()); - } - - File file = new File(path); - if (file.exists()) { - file.deleteOnExit(); - } + boolean isWindows = System.getProperty("os.name").contains("Windows"); + JAXPTestUtilities.runWithTmpPermission(() -> { + String hostName = ""; + try { + hostName = java.net.InetAddress.getLocalHost().getHostName(); + } catch (java.net.UnknownHostException e) { + // falls through + } + + String path = isWindows ? "\\\\" + hostName + "\\C$\\xslt_unc_test.xml" : "///tmp/test.xml"; + + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document doc = builder.newDocument(); + Element root = doc.createElement("test"); + doc.appendChild(root); + // create an identity transform + Transformer t = TransformerFactory.newInstance().newTransformer(); + File f = new File(path); + StreamResult result = new StreamResult(f); + DOMSource source = new DOMSource(doc); + System.out.println("Writing to " + f); + t.transform(source, result); + } catch (Exception e) { + // unexpected failure + e.printStackTrace(); + Assert.fail(e.toString()); + } + + File file = new File(path); + if (file.exists()) { + file.deleteOnExit(); + } + }, isWindows ? new FilePermission("//localhost/C$/xslt_unc_test.xml", "read, write, delete") + : new FilePermission("///tmp/test.xml", "read, write, delete")); } }