aboutsummaryrefslogtreecommitdiff
path: root/other/java
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-04-26 05:21:54 -0700
committerChris Lu <chris.lu@gmail.com>2020-04-26 05:21:54 -0700
commitb52b8ec68553781408d1ac8c6f7a2cd4d935aea6 (patch)
treede352994529a1e88349593b83c097cffaf123af7 /other/java
parent0c2248f83a49f6b95d290930d64e22edd75b0290 (diff)
downloadseaweedfs-b52b8ec68553781408d1ac8c6f7a2cd4d935aea6.tar.xz
seaweedfs-b52b8ec68553781408d1ac8c6f7a2cd4d935aea6.zip
Hadoop: fix entry not found for HCFS
also fix cipher related changes.
Diffstat (limited to 'other/java')
-rw-r--r--other/java/client/src/main/java/seaweedfs/client/FilerClient.java9
-rw-r--r--other/java/client/src/main/java/seaweedfs/client/SeaweedRead.java10
-rw-r--r--other/java/client/src/main/java/seaweedfs/client/SeaweedWrite.java4
3 files changed, 14 insertions, 9 deletions
diff --git a/other/java/client/src/main/java/seaweedfs/client/FilerClient.java b/other/java/client/src/main/java/seaweedfs/client/FilerClient.java
index 84aa26ad9..ef32c7e9a 100644
--- a/other/java/client/src/main/java/seaweedfs/client/FilerClient.java
+++ b/other/java/client/src/main/java/seaweedfs/client/FilerClient.java
@@ -14,7 +14,7 @@ public class FilerClient {
private static final Logger LOG = LoggerFactory.getLogger(FilerClient.class);
- private FilerGrpcClient filerGrpcClient;
+ private final FilerGrpcClient filerGrpcClient;
public FilerClient(String host, int grpcPort) {
filerGrpcClient = new FilerGrpcClient(host, grpcPort);
@@ -181,7 +181,7 @@ public class FilerClient {
.setLimit(limit)
.build());
List<FilerProto.Entry> entries = new ArrayList<>();
- while (iter.hasNext()){
+ while (iter.hasNext()) {
FilerProto.ListEntriesResponse resp = iter.next();
entries.add(fixEntryAfterReading(resp.getEntry()));
}
@@ -195,9 +195,12 @@ public class FilerClient {
.setDirectory(directory)
.setName(entryName)
.build()).getEntry();
+ if (entry == null) {
+ return null;
+ }
return fixEntryAfterReading(entry);
} catch (Exception e) {
- if (e.getMessage().indexOf("filer: no entry is found in filer store")>0){
+ if (e.getMessage().indexOf("filer: no entry is found in filer store") > 0) {
return null;
}
LOG.warn("lookupEntry {}/{}: {}", directory, entryName, e);
diff --git a/other/java/client/src/main/java/seaweedfs/client/SeaweedRead.java b/other/java/client/src/main/java/seaweedfs/client/SeaweedRead.java
index ad92ba006..1e4a158c6 100644
--- a/other/java/client/src/main/java/seaweedfs/client/SeaweedRead.java
+++ b/other/java/client/src/main/java/seaweedfs/client/SeaweedRead.java
@@ -99,10 +99,12 @@ public class SeaweedRead {
data = Gzip.decompress(data);
}
- try {
- data = SeaweedCipher.decrypt(data, chunkView.cipherKey);
- } catch (Exception e) {
- throw new IOException("fail to decrypt", e);
+ if (chunkView.cipherKey != null && chunkView.cipherKey.length != 0) {
+ try {
+ data = SeaweedCipher.decrypt(data, chunkView.cipherKey);
+ } catch (Exception e) {
+ throw new IOException("fail to decrypt", e);
+ }
}
return data;
diff --git a/other/java/client/src/main/java/seaweedfs/client/SeaweedWrite.java b/other/java/client/src/main/java/seaweedfs/client/SeaweedWrite.java
index 178234d5a..dc6203e52 100644
--- a/other/java/client/src/main/java/seaweedfs/client/SeaweedWrite.java
+++ b/other/java/client/src/main/java/seaweedfs/client/SeaweedWrite.java
@@ -36,7 +36,7 @@ public class SeaweedWrite {
String auth = response.getAuth();
String targetUrl = String.format("http://%s/%s", url, fileId);
- ByteString cipherKeyString = null;
+ ByteString cipherKeyString = com.google.protobuf.ByteString.EMPTY;
byte[] cipherKey = null;
if (filerGrpcClient.isCipher()) {
cipherKey = genCipherKey();
@@ -78,7 +78,7 @@ public class SeaweedWrite {
HttpClient client = new DefaultHttpClient();
InputStream inputStream = null;
- if (cipherKey == null) {
+ if (cipherKey == null || cipherKey.length == 0) {
inputStream = new ByteArrayInputStream(bytes, (int) bytesOffset, (int) bytesLength);
} else {
try {