diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-04-26 05:21:54 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-04-26 05:21:54 -0700 |
| commit | b52b8ec68553781408d1ac8c6f7a2cd4d935aea6 (patch) | |
| tree | de352994529a1e88349593b83c097cffaf123af7 /other/java | |
| parent | 0c2248f83a49f6b95d290930d64e22edd75b0290 (diff) | |
| download | seaweedfs-b52b8ec68553781408d1ac8c6f7a2cd4d935aea6.tar.xz seaweedfs-b52b8ec68553781408d1ac8c6f7a2cd4d935aea6.zip | |
Hadoop: fix entry not found for HCFS
also fix cipher related changes.
Diffstat (limited to 'other/java')
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 { |
