Browse Source

Don't delete metadata when deleting a resource from the Data Management screen.

qdn-on-chain-data
CalDescent 1 year ago
parent
commit
7deb9328fa
  1. 2
      src/main/java/org/qortal/api/resource/ArbitraryResource.java
  2. 9
      src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java
  3. 4
      src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java
  4. 4
      src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java
  5. 4
      src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java
  6. 2
      src/main/java/org/qortal/utils/ArbitraryTransactionUtils.java

2
src/main/java/org/qortal/api/resource/ArbitraryResource.java

@ -592,7 +592,7 @@ public class ArbitraryResource {
Security.checkApiCallAllowed(request);
ArbitraryDataResource resource = new ArbitraryDataResource(name, ResourceIdType.NAME, service, identifier);
return resource.delete();
return resource.delete(false);
}
@POST

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

@ -388,12 +388,15 @@ public class ArbitraryDataFile {
return false;
}
public boolean deleteAll() {
public boolean deleteAll(boolean deleteMetadata) {
// Delete the complete file
boolean fileDeleted = this.delete();
// Delete the metadata file
boolean metadataDeleted = this.deleteMetadata();
// Delete the metadata file if requested
boolean metadataDeleted = false;
if (deleteMetadata) {
metadataDeleted = this.deleteMetadata();
}
// Delete the individual chunks
boolean chunksDeleted = this.deleteAllChunks();

4
src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java

@ -140,7 +140,7 @@ public class ArbitraryDataResource {
return null;
}
public boolean delete() {
public boolean delete(boolean deleteMetadata) {
try {
this.fetchTransactions();
if (this.transactions == null) {
@ -157,7 +157,7 @@ public class ArbitraryDataResource {
arbitraryDataFile.setMetadataHash(metadataHash);
// Delete any chunks or complete files from each transaction
arbitraryDataFile.deleteAll();
arbitraryDataFile.deleteAll(deleteMetadata);
}
// Also delete cached data for the entire resource

4
src/main/java/org/qortal/arbitrary/ArbitraryDataTransactionBuilder.java

@ -281,7 +281,7 @@ public class ArbitraryDataTransactionBuilder {
} catch (DataException e) {
if (arbitraryDataFile != null) {
arbitraryDataFile.deleteAll();
arbitraryDataFile.deleteAll(true);
}
throw(e);
}
@ -315,7 +315,7 @@ public class ArbitraryDataTransactionBuilder {
Transaction.ValidationResult result = transaction.isValidUnconfirmed();
if (result != Transaction.ValidationResult.OK) {
arbitraryDataFile.deleteAll();
arbitraryDataFile.deleteAll(true);
throw new DataException(String.format("Arbitrary transaction invalid: %s", result));
}
LOGGER.info("Transaction is valid");

4
src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java

@ -155,8 +155,8 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository {
ArbitraryDataFile arbitraryDataFile = ArbitraryDataFile.fromHash(hash, signature);
arbitraryDataFile.setMetadataHash(metadataHash);
// Delete file and chunks
arbitraryDataFile.deleteAll();
// Delete file, chunks, and metadata
arbitraryDataFile.deleteAll(true);
}
@Override

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

@ -249,7 +249,7 @@ public class ArbitraryTransactionUtils {
ArbitraryDataFile arbitraryDataFile = ArbitraryDataFile.fromHash(completeHash, signature);
arbitraryDataFile.setMetadataHash(metadataHash);
arbitraryDataFile.deleteAll();
arbitraryDataFile.deleteAll(true);
}
public static void convertFileToChunks(ArbitraryTransactionData arbitraryTransactionData, long now, long cleanupAfter) throws DataException {

Loading…
Cancel
Save