[mb-commits] r13684 - search_server/trunk/index/src/main/java/org/musicbrainz/search/index
[email protected] Thu, 09 May 2013 21:01:55 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1UaXyN-0004hY-15@wiley> |
Author: ijabz
Date: 2013-05-09 21:01:54 +0000 (Thu, 09 May 2013)
New Revision: 13684
Modified:
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
Log:
Fixed multiple mediums being displayed under recoridng releases
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java 2013-05-09 15:25:01 UTC (rev 13683)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java 2013-05-09 21:01:54 UTC (rev 13684)
@@ -738,14 +738,26 @@
// For each track that uses recording
for (TrackWrapper trackWrapper : tracks.get(id)) {
- //Set the release details for this track
- Release release = releases.get(trackWrapper.getReleaseId());
- releaseList.getRelease().add(release);
+ //Get the release details for this track
+ Release origRelease = releases.get(trackWrapper.getReleaseId());
- if (release != null) {
+ if (origRelease != null) {
+ //This release instance will be shared by all recordings that have a track on the release so we need
+ //to copy details so we can append track specific details
+ Release release = of.createRelease();
+ release.setId(origRelease.getId());
+ release.setTitle(origRelease.getTitle());
+ MediumList ml = of.createMediumList();
+ release.setReleaseGroup(origRelease.getReleaseGroup());
+ release.setStatus(origRelease.getStatus());
+ ml.setTrackCount(origRelease.getMediumList().getTrackCount());
+ release.setMediumList(ml);
+ release.setReleaseEventList(origRelease.getReleaseEventList());
+ releaseList.getRelease().add(release);
+
+ ReleaseGroup rg = release.getReleaseGroup();
doc.addNonEmptyField(RecordingIndexField.TRACK_ID, trackWrapper.getTrackGuid());
- ReleaseGroup rg = release.getReleaseGroup();
String primaryType = rg.getPrimaryType();
doc.addFieldOrUnknown(RecordingIndexField.RELEASEGROUP_ID, rg.getId());
doc.addFieldOrUnknown(RecordingIndexField.RELEASE_PRIMARY_TYPE, primaryType);
@@ -785,12 +797,11 @@
release.getMediumList().getMedium().add(medium);
medium.setTrackList(tl);
tl.getDefTrack().add(track);
-
doc.addFieldOrNoValue(RecordingIndexField.RELEASE_STATUS, release.getStatus());
if (
(release.getReleaseEventList() != null) &&
- (release.getReleaseEventList().getReleaseEvent() != null)
+ (release.getReleaseEventList().getReleaseEvent().size()>0)
) {
for (ReleaseEvent re : release.getReleaseEventList().getReleaseEvent()) {
doc.addNonEmptyField(RecordingIndexField.RELEASE_DATE, re.getDate());