HADOOP-11381. Fix findbugs warnings in hadoop-distcp, hadoop-aws, hadoop-azure, and hadoop-openstack. Contributed by Li Lu.

This commit is contained in:
Haohui Mai 2014-12-09 20:45:21 -08:00
parent 195f31a8ef
commit 2e98ad34ce
7 changed files with 22 additions and 11 deletions

View File

@ -555,6 +555,8 @@ Release 2.7.0 - UNRELEASED
HADOOP-11349. RawLocalFileSystem leaks file descriptor while creating a
file if creat succeeds but chmod fails. (Varun Saxena via Colin P. McCabe)
HADOOP-11381. Fix findbugs warnings in hadoop-distcp, hadoop-aws,
hadoop-azure, and hadoop-openstack. (Li Lu via wheat9)
Release 2.6.0 - 2014-11-18

View File

@ -875,6 +875,8 @@ public class S3AFileSystem extends FileSystem {
case ProgressEvent.PART_COMPLETED_EVENT_CODE:
statistics.incrementWriteOps(1);
break;
default:
break;
}
}
};
@ -933,6 +935,8 @@ public class S3AFileSystem extends FileSystem {
case ProgressEvent.PART_COMPLETED_EVENT_CODE:
statistics.incrementWriteOps(1);
break;
default:
break;
}
}
};

View File

@ -25,6 +25,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -153,7 +154,7 @@ public class NativeAzureFileSystem extends FileSystem {
"Error reading pending rename file contents -- "
+ "maximum file size exceeded");
}
String contents = new String(bytes, 0, l);
String contents = new String(bytes, 0, l, Charset.forName("UTF-8"));
// parse the JSON
ObjectMapper objMapper = new ObjectMapper();
@ -253,7 +254,7 @@ public class NativeAzureFileSystem extends FileSystem {
// Write file.
try {
output = fs.create(path);
output.write(contents.getBytes());
output.write(contents.getBytes(Charset.forName("UTF-8")));
} catch (IOException e) {
throw new IOException("Unable to write RenamePending file for folder rename from "
+ srcKey + " to " + dstKey, e);

View File

@ -18,7 +18,6 @@
package org.apache.hadoop.fs.azure;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.fs.azure.StorageInterface.CloudBlobWrapper;
@ -27,6 +26,8 @@ import com.microsoft.windowsazure.storage.AccessCondition;
import com.microsoft.windowsazure.storage.StorageException;
import com.microsoft.windowsazure.storage.blob.CloudBlob;
import java.util.concurrent.atomic.AtomicInteger;
/**
* An Azure blob lease that automatically renews itself indefinitely
* using a background thread. Use it to synchronize distributed processes,
@ -56,7 +57,7 @@ public class SelfRenewingLease {
private static final Log LOG = LogFactory.getLog(SelfRenewingLease.class);
// Used to allocate thread serial numbers in thread name
private static volatile int threadNumber = 0;
private static AtomicInteger threadNumber = new AtomicInteger(0);
// Time to wait to retry getting the lease in milliseconds
@ -99,7 +100,7 @@ public class SelfRenewingLease {
// A Renewer running should not keep JVM from exiting, so make it a daemon.
renewer.setDaemon(true);
renewer.setName("AzureLeaseRenewer-" + threadNumber++);
renewer.setName("AzureLeaseRenewer-" + threadNumber.getAndIncrement());
renewer.start();
LOG.debug("Acquired lease " + leaseID + " on " + blob.getUri()
+ " managed by thread " + renewer.getName());

View File

@ -27,6 +27,7 @@ import org.apache.hadoop.security.Credentials;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
@ -74,7 +75,8 @@ public class FileBasedCopyListing extends CopyListing {
FileSystem fs = sourceListing.getFileSystem(getConf());
BufferedReader input = null;
try {
input = new BufferedReader(new InputStreamReader(fs.open(sourceListing)));
input = new BufferedReader(new InputStreamReader(fs.open(sourceListing),
Charset.forName("UTF-8")));
String line = input.readLine();
while (line != null) {
result.add(new Path(line));

View File

@ -45,6 +45,7 @@ import java.io.InputStream;
import java.io.InterruptedIOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -352,8 +353,8 @@ public class SwiftNativeFileSystemStore {
final CollectionType collectionType = JSONUtil.getJsonMapper().getTypeFactory().
constructCollectionType(List.class, SwiftObjectFileStatus.class);
final List<SwiftObjectFileStatus> fileStatusList =
JSONUtil.toObject(new String(bytes), collectionType);
final List<SwiftObjectFileStatus> fileStatusList = JSONUtil.toObject(
new String(bytes, Charset.forName("UTF-8")), collectionType);
//this can happen if user lists file /data/files/file
//in this case swift will return empty array
@ -447,7 +448,7 @@ public class SwiftNativeFileSystemStore {
//no object location, return an empty list
return new LinkedList<URI>();
}
return extractUris(new String(objectLocation), path);
return extractUris(new String(objectLocation, Charset.forName("UTF-8")), path);
}
/**

View File

@ -219,9 +219,9 @@ public class SwiftTestUtils extends org.junit.Assert {
byte actual = dest[i];
byte expected = src[i];
String letter = toChar(actual);
String line = String.format("[%04d] %2x %s\n", i, actual, letter);
String line = String.format("[%04d] %2x %s%n", i, actual, letter);
if (expected != actual) {
line = String.format("[%04d] %2x %s -expected %2x %s\n",
line = String.format("[%04d] %2x %s -expected %2x %s%n",
i,
actual,
letter,