Skip to content

Commit bf1e8fc

Browse files
committed
make more efficient
1 parent 23d47a3 commit bf1e8fc

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/main/java/edu/harvard/iq/dataverse/dataverse/featured/DataverseFeaturedItemServiceBean.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.nio.file.Files;
1818
import java.nio.file.Path;
1919
import java.nio.file.StandardCopyOption;
20-
import java.util.ArrayList;
2120
import java.util.List;
2221
import java.util.logging.Logger;
2322

@@ -70,17 +69,17 @@ public void deleteAllByDvObjectId(Long id) {
7069
public void deleteInvalidatedFeaturedItemsByDataset(Dataset dataset) {
7170
// Delete any Featured Items that contain Datafiles that were removed or restricted in the latest published version
7271
List<DataverseFeaturedItem> featuredItems = findAllByDataverseOrdered(dataset.getOwner());
72+
DatasetVersion latestVersion = dataset.getLatestVersion();
73+
7374
for (DataverseFeaturedItem featuredItem : featuredItems) {
7475
if (featuredItem.getDvObject() != null && featuredItem.getType().equalsIgnoreCase(DataverseFeaturedItem.TYPES.DATAFILE.name())) {
7576
DataFile df = (DataFile) featuredItem.getDvObject();
76-
List<Long> latestVersionFileIds = new ArrayList<>();
77-
dataset.getLatestVersion().getFileMetadatas().stream()
78-
.map(FileMetadata::getId)
79-
.forEachOrdered(latestVersionFileIds::add);
80-
// If the datafile is restricted or part of this dataset but not in the latest version we need to delete the featured item
81-
if (df.isRestricted() || (dataset.getFiles().contains(df) && !latestVersionFileIds.contains(df.getId()))) {
82-
logger.fine("Deleting invalidated Featured Item for " + (df.isRestricted() ? "Restricted" : "Deleted") + "Datafile ID: " + df.getId());
77+
78+
// Check if the file is restricted or deleted
79+
if (df.isRestricted() || df.isInDatasetVersion(latestVersion)) {
80+
logger.fine("Deleting invalidated Featured Item for " + (df.isRestricted() ? "Restricted" : "Deleted") + " Datafile ID: " + df.getId());
8381
deleteAllByDvObjectId(df.getId());
82+
continue;
8483
}
8584
}
8685
}

0 commit comments

Comments
 (0)