提交 5a49292d 编写于 作者: M mcherkas

8130242: DataFlavorComparator transitivity exception

Reviewed-by: serb
上级 44360c4f
......@@ -2898,13 +2898,7 @@ search:
return comp;
}
} else {
// First, prefer application types.
comp = compareIndices(primaryTypes, primaryType1, primaryType2,
UNKNOWN_OBJECT_LOSES);
if (comp != 0) {
return comp;
}
// First, prefer text types
if (flavor1.isFlavorTextType()) {
return 1;
}
......@@ -2913,6 +2907,13 @@ search:
return -1;
}
// Next, prefer application types.
comp = compareIndices(primaryTypes, primaryType1, primaryType2,
UNKNOWN_OBJECT_LOSES);
if (comp != 0) {
return comp;
}
// Next, look for application/x-java-* types. Prefer unknown
// MIME types because if the user provides his own data flavor,
// it will likely be the most descriptive one.
......
......@@ -37,42 +37,61 @@ public class DataFlavorComparatorTest1 {
public static void main(String[] args) throws Exception {
String[] mimes = new String[] {
"text/plain;class=java.nio.ByteBuffer;charset=UTF-8",
"text/uri-list;class=java.nio.ByteBuffer;charset=UTF-8",
"text/plain;class=java.nio.ByteBuffer;charset=UTF-16LE",
"text/uri-list;class=java.nio.ByteBuffer;charset=UTF-16LE",
"application/x-java-text-encoding",
"application/x-java-serialized-object;class=java.lang.String",
"text/plain;class=java.io.InputStream;charset=UTF-8",
"text/uri-list;class=java.io.InputStream;charset=UTF-8",
"text/plain;class=java.io.InputStream;charset=windows-1252",
"text/uri-list;class=java.io.InputStream;charset=windows-1252",
"application/x-java-url;class=java.net.URL",
"text/plain;class=java.io.Reader",
"text/plain;charset=windows-1252",
"text/uri-list;class=java.io.Reader",
"text/uri-list;charset=windows-1252",
"text/plain;charset=UTF-8",
"text/uri-list;charset=UTF-8",
"text/plain;class=java.io.InputStream;charset=US-ASCII",
"text/uri-list;class=java.io.InputStream;charset=US-ASCII",
"text/plain;class=java.io.InputStream;charset=UTF-16LE",
"text/plain;charset=US-ASCII",
"text/uri-list;class=java.io.InputStream;charset=UTF-16LE",
"text/uri-list;charset=US-ASCII",
"text/plain;charset=UTF-16LE",
"text/uri-list;charset=UTF-16LE",
"text/plain;class=java.nio.ByteBuffer;charset=UTF-16BE",
"text/uri-list;class=java.nio.ByteBuffer;charset=UTF-16BE",
"text/plain;class=java.nio.ByteBuffer;charset=ISO-8859-1",
"text/uri-list;class=java.nio.ByteBuffer;charset=ISO-8859-1",
"text/plain",
"text/plain; charset=unicode",
"text/plain; charset=cp1251",
"text/plain; charset=unicode; class=java.io.InputStream",
"text/plain; charset=unicode; class=java.io.Serializable",
"text/plain; charset=unicode; class=java.lang.Object",
"text/plain; class=java.lang.String",
"text/plain; class=java.io.Reader",
"text/plain; class=java.lang.Object",
"text/html",
"text/html; charset=unicode",
"text/html; charset=cp1251",
"text/html; charset=unicode; class=java.io.InputStream",
"text/html; charset=unicode; class=java.io.Serializable",
"text/html; charset=unicode; class=java.lang.Object",
"text/html; class=java.lang.String",
"text/html; class=java.io.Reader",
"text/html; class=java.lang.Object",
"text/unknown",
"text/unknown; charset=unicode",
"text/unknown; charset=cp1251",
"text/unknown; charset=unicode; class=java.io.InputStream",
"text/unknown; charset=unicode; class=java.io.Serializable",
"text/unknown; charset=unicode; class=java.lang.Object",
"text/unknown; class=java.lang.String",
"text/unknown; class=java.io.Reader",
"text/unknown; class=java.lang.Object",
"application/unknown; class=java.io.InputStream",
"application/unknown; class=java.lang.Object",
"application/unknown",
"application/x-java-jvm-local-objectref; class=java.io.InputStream",
"application/x-java-jvm-local-objectref; class=java.lang.Object",
"application/x-java-jvm-local-objectref",
"unknown/flavor",
"unknown/flavor; class=java.io.InputStream",
"unknown/flavor; class=java.lang.Object",
"text/uri-list",
"text/plain;class=java.nio.ByteBuffer;charset=UTF-16",
"text/uri-list;class=java.nio.ByteBuffer;charset=UTF-16",
"text/plain;class=java.io.InputStream;charset=unicode",
"text/uri-list;class=java.io.InputStream;charset=UTF-16",
"text/plain;class=java.nio.CharBuffer",
"text/uri-list;class=java.nio.CharBuffer",
"text/plain;class=java.lang.String",
"text/plain;charset=UTF-16BE",
"text/uri-list;class=java.lang.String",
"text/uri-list;charset=UTF-16BE",
"text/plain;charset=ISO-8859-1",
"text/uri-list;charset=ISO-8859-1",
"text/plain;class=java.io.InputStream;charset=UTF-16BE",
"text/uri-list;class=java.io.InputStream;charset=UTF-16BE",
"text/plain;class=java.nio.ByteBuffer;charset=US-ASCII",
"text/uri-list;class=java.nio.ByteBuffer;charset=US-ASCII",
"text/plain;class=java.io.InputStream;charset=ISO-8859-1",
"text/uri-list;class=java.io.InputStream;charset=ISO-8859-1",
"text/plain;charset=UTF-16",
"text/plain;class=java.nio.ByteBuffer;charset=windows-1252",
"text/uri-list;charset=UTF-16",
"text/uri-list;class=java.nio.ByteBuffer;charset=windows-1252",
"text/plain;class=java.io.InputStream;charset=windows-1252",
"text/uri-list;class=java.io.InputStream;charset=windows-1252",
};
DataFlavor[] flavors = new DataFlavor[mimes.length];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册