Skip to content

Commit

Permalink
avoid concurrent modification exception
Browse files Browse the repository at this point in the history
  • Loading branch information
Micheleboychuk committed Apr 21, 2020
1 parent f2a761b commit b3823d4
Showing 1 changed file with 5 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
package org.dspace.app.rest.converter;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.logging.log4j.LogManager;
Expand Down Expand Up @@ -78,23 +79,24 @@ public R convert(M obj, Projection projection) {
*/
public MetadataValueList getPermissionFilteredMetadata(Context context, M obj) {
List<MetadataValue> metadata = obj.getMetadata();
List<MetadataValue> visibleMetadata = new ArrayList<MetadataValue>();
try {
if (context != null && authorizeService.isAdmin(context)) {
return new MetadataValueList(metadata);
}
for (MetadataValue mv : metadata) {
MetadataField metadataField = mv.getMetadataField();
if (metadataExposureService
if (!metadataExposureService
.isHidden(context, metadataField.getMetadataSchema().getName(),
metadataField.getElement(),
metadataField.getQualifier())) {
metadata.remove(mv);
visibleMetadata.add(mv);
}
}
} catch (SQLException e) {
log.error("Error filtering metadata based on permissions", e);
}
return new MetadataValueList(metadata);
return new MetadataValueList(visibleMetadata);
}

/**
Expand Down

0 comments on commit b3823d4

Please sign in to comment.