--- a/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java Fri Oct 18 16:06:20 2013 +0400
+++ b/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java Fri Oct 18 13:51:12 2013 +0100
@@ -42,16 +42,15 @@
class SolarisUserDefinedFileAttributeView
extends AbstractUserDefinedFileAttributeView
{
+ private static final byte[] HERE = { '.' };
+
private byte[] nameAsBytes(UnixPath file, String name) throws IOException {
- byte[] bytes = name.getBytes();
+ byte[] bytes = Util.toBytes(name);
// "", "." and ".." not allowed
- if (bytes.length == 0 || bytes[0] == '.') {
- if (bytes.length <= 1 ||
- (bytes.length == 2 && bytes[1] == '.'))
- {
- throw new FileSystemException(file.getPathForExceptionMessage(),
- null, "'" + name + "' is not a valid name");
- }
+ if ((bytes.length == 0 || bytes[0] == '.') &&
+ ((bytes.length <= 1 || (bytes.length == 2 && bytes[1] == '.')) {
+ throw new FileSystemException(file.getPathForExceptionMessage(),
+ null, "'" + name + "' is not a valid name");
}
return bytes;
}
@@ -73,7 +72,7 @@
try {
try {
// open extended attribute directory
- int dfd = openat(fd, ".".getBytes(), (O_RDONLY|O_XATTR), 0);
+ int dfd = openat(fd, HERE, (O_RDONLY|O_XATTR), 0);
long dp;
try {
dp = fdopendir(dfd);
@@ -87,7 +86,7 @@
try {
byte[] name;
while ((name = readdir(dp)) != null) {
- String s = new String(name);
+ String s = Util.toString(name);
if (!s.equals(".") && !s.equals(".."))
list.add(s);
}
@@ -217,7 +216,7 @@
int fd = file.openForAttributeAccess(followLinks);
try {
- int dfd = openat(fd, ".".getBytes(), (O_RDONLY|O_XATTR), 0);
+ int dfd = openat(fd, HERE, (O_RDONLY|O_XATTR), 0);
try {
unlinkat(dfd, nameAsBytes(file,name), 0);
} finally {
@@ -243,7 +242,7 @@
static void copyExtendedAttributes(int ofd, int nfd) {
try {
// open extended attribute directory
- int dfd = openat(ofd, ".".getBytes(), (O_RDONLY|O_XATTR), 0);
+ int dfd = openat(ofd, HERE, (O_RDONLY|O_XATTR), 0);
long dp = 0L;
try {
dp = fdopendir(dfd);