Skip to content

Commit a248a52

Browse files
committed
Revert transitive MediaType comparators
The fix made for gh-27488 resulted in a change of the default order of codecs. This commit reverts these changes, so that the previous order is restored. Closes gh-27573
1 parent 2a3c9e4 commit a248a52

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

spring-core/src/main/java/org/springframework/util/MimeType.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,13 +637,19 @@ public int compare(T mimeType1, T mimeType2) {
637637
else if (mimeType2.isWildcardType() && !mimeType1.isWildcardType()) { // audio/* > */*
638638
return -1;
639639
}
640+
else if (!mimeType1.getType().equals(mimeType2.getType())) { // audio/basic == text/html
641+
return 0;
642+
}
640643
else { // mediaType1.getType().equals(mediaType2.getType())
641644
if (mimeType1.isWildcardSubtype() && !mimeType2.isWildcardSubtype()) { // audio/* < audio/basic
642645
return 1;
643646
}
644647
else if (mimeType2.isWildcardSubtype() && !mimeType1.isWildcardSubtype()) { // audio/basic > audio/*
645648
return -1;
646649
}
650+
else if (!mimeType1.getSubtype().equals(mimeType2.getSubtype())) { // audio/basic == audio/wave
651+
return 0;
652+
}
647653
else { // mediaType2.getSubtype().equals(mediaType2.getSubtype())
648654
return compareParameters(mimeType1, mimeType2);
649655
}

spring-web/src/main/java/org/springframework/http/MediaType.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,13 +798,19 @@ else if (mediaType1.isWildcardType() && !mediaType2.isWildcardType()) { // */*
798798
else if (mediaType2.isWildcardType() && !mediaType1.isWildcardType()) { // audio/* > */*
799799
return -1;
800800
}
801+
else if (!mediaType1.getType().equals(mediaType2.getType())) { // audio/basic == text/html
802+
return 0;
803+
}
801804
else { // mediaType1.getType().equals(mediaType2.getType())
802805
if (mediaType1.isWildcardSubtype() && !mediaType2.isWildcardSubtype()) { // audio/* < audio/basic
803806
return 1;
804807
}
805808
else if (mediaType2.isWildcardSubtype() && !mediaType1.isWildcardSubtype()) { // audio/basic > audio/*
806809
return -1;
807810
}
811+
else if (!mediaType1.getSubtype().equals(mediaType2.getSubtype())) { // audio/basic == audio/wave
812+
return 0;
813+
}
808814
else {
809815
int paramsSize1 = mediaType1.getParameters().size();
810816
int paramsSize2 = mediaType2.getParameters().size();

0 commit comments

Comments
 (0)