Browse Source

Fixed issue causing "totalChunkCount" to exclude the metadata file in some cases.

ArbitraryDataFile now has a fileCount() method which returns the total number of files associated with that piece of data - i.e. chunks, metadata, and the complete file in cases where it isn't chunked.
qdn-on-chain-data
CalDescent 2 years ago
parent
commit
fa14568cb9
  1. 16
      src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java
  2. 2
      src/main/java/org/qortal/utils/ArbitraryTransactionUtils.java

16
src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java

@ -612,6 +612,22 @@ public class ArbitraryDataFile {
return this.chunks.size(); return this.chunks.size();
} }
public int fileCount() {
int fileCount = this.chunkCount();
if (fileCount == 0) {
// Transactions without any chunks can already be treated as a complete file
fileCount++;
}
if (this.getMetadataHash() != null) {
// Add the metadata file
fileCount++;
}
return fileCount;
}
public List<ArbitraryDataFileChunk> getChunks() { public List<ArbitraryDataFileChunk> getChunks() {
return this.chunks; return this.chunks;
} }

2
src/main/java/org/qortal/utils/ArbitraryTransactionUtils.java

@ -193,7 +193,7 @@ public class ArbitraryTransactionUtils {
ArbitraryDataFile arbitraryDataFile = ArbitraryDataFile.fromHash(digest, signature); ArbitraryDataFile arbitraryDataFile = ArbitraryDataFile.fromHash(digest, signature);
arbitraryDataFile.setMetadataHash(metadataHash); arbitraryDataFile.setMetadataHash(metadataHash);
return arbitraryDataFile.chunkCount() + 1; // +1 for the metadata file return arbitraryDataFile.fileCount();
} }
public static boolean isFileRecent(Path filePath, long now, long cleanupAfter) { public static boolean isFileRecent(Path filePath, long now, long cleanupAfter) {

Loading…
Cancel
Save