8198405: JImageExtractTest.java & JImageListTest.java failed in Windows
Make a directory readonly using nio file attribute AclEntry Reviewed-by: jlaskey
This commit is contained in:
parent
7485f6b5b9
commit
c216fe0f55
@ -820,9 +820,6 @@ java/awt/im/memoryleak/InputContextMemoryLeakTest.java 8023814 linux-all,solaris
|
|||||||
|
|
||||||
tools/pack200/CommandLineTests.java 8059906 generic-all
|
tools/pack200/CommandLineTests.java 8059906 generic-all
|
||||||
|
|
||||||
tools/jimage/JImageExtractTest.java 8198405 windows-all
|
|
||||||
tools/jimage/JImageListTest.java 8198405 windows-all
|
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# jdk_jdi
|
# jdk_jdi
|
||||||
|
@ -34,11 +34,10 @@ import java.io.IOException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.nio.file.attribute.FileAttribute;
|
import java.nio.file.attribute.*;
|
||||||
import java.nio.file.attribute.PosixFilePermission;
|
|
||||||
import java.nio.file.attribute.PosixFilePermissions;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -145,15 +144,25 @@ public class JImageExtractTest extends JImageCliTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testExtractToReadOnlyDir() throws IOException {
|
public void testExtractToReadOnlyDir() throws IOException {
|
||||||
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("r-xr--r--");
|
Path filePath = Files.createTempDirectory(Paths.get("."), getClass().getName());
|
||||||
Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
|
Set<String> supportedAttr = filePath.getFileSystem().supportedFileAttributeViews();
|
||||||
String os = System.getProperty("os.name").toLowerCase();
|
if (supportedAttr.contains("posix")) {
|
||||||
if (os.indexOf("win") >= 0) {
|
Files.setPosixFilePermissions(filePath, PosixFilePermissions.fromString("r-xr--r--"));
|
||||||
Files.setAttribute(tmp, "dos:readonly", true);
|
} else if (supportedAttr.contains("acl")) {
|
||||||
} else {
|
System.out.println("Entered into acl block");
|
||||||
Files.setPosixFilePermissions(tmp, perms);
|
UserPrincipal fileOwner = Files.getOwner(filePath);
|
||||||
|
AclFileAttributeView view = Files.getFileAttributeView(filePath, AclFileAttributeView.class);
|
||||||
|
AclEntry entry = AclEntry.newBuilder()
|
||||||
|
.setType(AclEntryType.DENY)
|
||||||
|
.setPrincipal(fileOwner)
|
||||||
|
.setPermissions(AclEntryPermission.WRITE_DATA)
|
||||||
|
.setFlags(AclEntryFlag.FILE_INHERIT, AclEntryFlag.DIRECTORY_INHERIT)
|
||||||
|
.build();
|
||||||
|
List<AclEntry> acl = view.getAcl();
|
||||||
|
acl.add(0, entry);
|
||||||
|
view.setAcl(acl);
|
||||||
}
|
}
|
||||||
jimage("extract", "--dir", tmp.toString(), getImagePath())
|
jimage("extract", "--dir", filePath.toString(), getImagePath())
|
||||||
.assertFailure()
|
.assertFailure()
|
||||||
.assertShowsError();
|
.assertShowsError();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user