From be078923fe54cd3cb643aa9fa4d3e8d15d04cf6b Mon Sep 17 00:00:00 2001 From: schweinfurthl Date: Tue, 16 Sep 2025 10:59:51 -0400 Subject: [PATCH] fix multiple file deletes with --overlappingOnly --- .gitignore | 12 ++++++++++++ .../spark/SparkInterestPointDetection.java | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 0985a223..232aba61 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,15 @@ /.settings/ /.idea/ affine-fusion +clear-interestpoints +clear-registrations +create-fusion-container +detect-interestpoints +downsample +match-interestpoints +nonrigid-fusion +resave +solver +split-images +stitching +transform-points \ No newline at end of file diff --git a/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java b/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java index 43975be2..4e437957 100644 --- a/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java +++ b/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java @@ -33,6 +33,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; +import java.util.Set; +import java.util.HashSet; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; @@ -654,6 +656,11 @@ public Void call() throws Exception rddResult.count(); final List> results = rddResult.collect(); + final Set datasetSet = new HashSet(); + for (Tuple3 res : results) { + datasetSet.add(res._3()); + } + final List datasetNoDups = new ArrayList<>(datasetSet); // assemble all interest point intervals per ViewId final HashMap< ViewId, List< List< InterestPoint > > > interestPointsPerViewId = new HashMap<>(); @@ -696,18 +703,18 @@ public Void call() throws Exception { System.out.println( "Deleting temporary Spark files ... "); - final JavaRDD> rdd = sc.parallelize( results, Math.min( Spark.maxPartitions, results.size() ) ); + final JavaRDD rdd = sc.parallelize( datasetNoDups, Math.min( Spark.maxPartitions, datasetNoDups.size() ) ); rdd.foreach( boundingBox -> { final N5Writer n5WriterLocal = URITools.instantiateN5Writer( StorageFormat.N5, tempURI ); - if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/points" )) + if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/points" )) { - n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/points" ); + n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/points" ); - if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/intensities" ) ) - n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/intensities" ); + if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/intensities" ) ) + n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/intensities" ); n5WriterLocal.close(); }