Project

General

Profile

« Previous | Next » 

Revision 8e996490

Added by Andreas Kohlbecker almost 4 years ago

ref #9134 preventing persistance of volatile modified media

View differences:

cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/util/MediaToolbox.java
9 9
package eu.etaxonomy.cdm.remote.controller.util;
10 10

  
11 11
import java.util.ArrayList;
12
import java.util.HashSet;
12 13
import java.util.List;
13 14
import java.util.Map;
15
import java.util.Set;
14 16

  
15 17
import org.apache.log4j.Logger;
16 18
import org.springframework.beans.factory.annotation.Autowired;
......
86 88
        MediaUriTransformationProcessor mediaTransformationProcessor = new MediaUriTransformationProcessor();
87 89
        mediaTransformationProcessor.addAll(readTransformations());
88 90

  
89
        List<MediaRepresentation> newReprs = new ArrayList<>();
91
        Set<MediaRepresentation> newReprs = new HashSet<>();
90 92
        for (MediaRepresentation repr : media.getRepresentations()) {
91 93
            for (MediaRepresentationPart part : repr.getParts()) {
92 94
                newReprs.addAll(mediaTransformationProcessor.makeNewMediaRepresentationsFor(part));
93 95
            }
94 96
        }
95
        for(MediaRepresentation r : newReprs) {
96
            media.addRepresentation(r);
97
        }
98

  
99
        return MediaUtils.findBestMatchingRepresentation(media, type, size, height, widthOrDuration, mimeTypes,
100
                missingValStrategy);
97
        newReprs.addAll(media.getRepresentations());
98
        return MediaUtils.findBestMatchingRepresentation(newReprs, type, size, height, widthOrDuration, mimeTypes, missingValStrategy);
101 99
    }
102 100

  
103 101
    @Override
......
111 109
        for (Media media : mediaRepresentationMap.keySet()) {
112 110
            media.getRepresentations().clear();
113 111
            media.addRepresentation(mediaRepresentationMap.get(media));
112
            media.setId(0); // prevent from persisting the media entity accidentally
114 113
            filteredMedia.add(media);
115 114
        }
116 115
        return filteredMedia;

Also available in: Unified diff