Details
-
Bug
-
Resolution: Fixed
-
P3
-
8u20, 9
-
b22
-
x86
-
os_x
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8045684 | 8u25 | Alexandr Scherbatiy | P3 | Resolved | Fixed | b01 |
JDK-8044106 | 8u20 | Alexandr Scherbatiy | P3 | Resolved | Fixed | b17 |
JDK-8053628 | emb-8u26 | Alexandr Scherbatiy | P3 | Resolved | Fixed | b17 |
Description
FULL PRODUCT VERSION :
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b05)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b05, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Darwin mankell 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
A DESCRIPTION OF THE PROBLEM :
Every now and then, MediaTracking of an ImageIcon does not seem to work all the way.
The width reported by iconImage.getIconWidth() does not match the width reported by iconImage.getImage().getWidth(null).
In earlier JDK versions, this did not occur.
Here's what I expect:
a call to:
IconImage icon = new ImageIcon(someHttpURL);
will load the image via HTTP and only return once the image has been completely loaded.
When that happens, icon.getIconWidth() will return the image's width.
It will be the same as icon.getImage().getWidth(null).
This, I tested, is true for Java 1.8.0.
This is what I observe:
On 1.8.0u20, every now and then,
icon.getIconWidth() returns -1, even though the URL is clearly valid.
icon.getImage().getWidth(null) also return -1.
However, after waiting a little while,
icon.getIconWidth() still returns -1 and
icon.getImage().getWidth(null) returns the true width
So it seems to me, that the MediaTracker used in ImageIcon, does not wait until the image is fully loaded, in fact, it returns a status 10 (aborted).
REGRESSION. Last worked in version 8
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b129)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b69, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the provided class.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=113, image.width=113 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=130, image.width=130 imageLoadStatus=8
iconWidth=159, image.width=159 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
Wait a little....
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=113, image.width=113
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=130, image.width=130
iconWidth=159, image.width=159
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
ACTUAL -
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=113, image.width=113 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=159, image.width=159 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
Wait a little....
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=113, image.width=113
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=-1, image.width=130 ***** icon width is not correct *****
iconWidth=159, image.width=159
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.net.MalformedURLException;
import java.net.URL;
public class IconImageTest {
public static void main(String[] args) throws MalformedURLException {
final URL[] urls = new URL[70];
urls[0] = new URL("http://ecx.images-amazon.com/images/I/414h77wL4EL._SL160_.jpg");
urls[1] = new URL("http://ecx.images-amazon.com/images/I/515pogBxO9L._SL160_.jpg");
urls[2] = new URL("http://ecx.images-amazon.com/images/I/41I1vwgqsXL._SL160_.jpg");
urls[3] = new URL("http://ecx.images-amazon.com/images/I/51-JzKwWe-L._SL160_.jpg");
urls[4] = new URL("http://ecx.images-amazon.com/images/I/51V5n3XX4sL._SL160_.jpg");
urls[5] = new URL("http://ecx.images-amazon.com/images/I/610zMH8VYyL._SL160_.jpg");
urls[6] = new URL("http://ecx.images-amazon.com/images/I/51pmAKfwTlL._SL160_.jpg");
urls[7] = new URL("http://ecx.images-amazon.com/images/I/61vHzDEgxgL._SL160_.jpg");
urls[8] = new URL("http://ecx.images-amazon.com/images/I/51TAPDNMBdL._SL160_.jpg");
urls[9] = new URL("http://ecx.images-amazon.com/images/I/51ZuY7zfsfL._SL160_.jpg");
urls[10] = new URL("http://ecx.images-amazon.com/images/I/41Upfpq4XnL._SL160_.jpg");
urls[11] = new URL("http://ecx.images-amazon.com/images/I/51zSTVJM6nL._SL160_.jpg");
urls[12] = new URL("http://ecx.images-amazon.com/images/I/51-6wmW4swL._SL160_.jpg");
urls[13] = new URL("http://ecx.images-amazon.com/images/I/51gmuw5qUrL._SL160_.jpg");
urls[14] = new URL("http://ecx.images-amazon.com/images/I/41NYyfjNZjL._SL160_.jpg");
urls[15] = new URL("http://ecx.images-amazon.com/images/I/51RNerVHKRL._SL160_.jpg");
urls[16] = new URL("http://ecx.images-amazon.com/images/I/51KpoPP738L._SL160_.jpg");
urls[17] = new URL("http://ecx.images-amazon.com/images/I/61iKyNi5UKL._SL160_.jpg");
urls[18] = new URL("http://ecx.images-amazon.com/images/I/61iGFtl2YmL._SL160_.jpg");
urls[19] = new URL("http://ecx.images-amazon.com/images/I/41fos%2BEksdL._SL160_.jpg");
urls[20] = new URL("http://ecx.images-amazon.com/images/I/51RpKf9APDL._SL160_.jpg");
urls[21] = new URL("http://ecx.images-amazon.com/images/I/61e21Jz2yiL._SL160_.jpg");
urls[22] = new URL("http://ecx.images-amazon.com/images/I/51AmYeBsMCL._SL160_.jpg");
urls[23] = new URL("http://ecx.images-amazon.com/images/I/61aETwYg8PL._SL160_.jpg");
urls[24] = new URL("http://ecx.images-amazon.com/images/I/61m5%2BVAZrrL._SL160_.jpg");
urls[25] = new URL("http://ecx.images-amazon.com/images/I/51nA1JIuRNL._SL160_.jpg");
urls[26] = new URL("http://ecx.images-amazon.com/images/I/41GRH80LYeL._SL160_.jpg");
urls[27] = new URL("http://ecx.images-amazon.com/images/I/41IhcL9HZkL._SL160_.jpg");
urls[28] = new URL("http://ecx.images-amazon.com/images/I/51k-Q52GnFL._SL160_.jpg");
urls[29] = new URL("http://ecx.images-amazon.com/images/I/51SQ3BkujSL._SL160_.jpg");
urls[30] = new URL("http://ecx.images-amazon.com/images/I/41iJNnii-ZL._SL160_.jpg");
urls[31] = new URL("http://ecx.images-amazon.com/images/I/41etRDeiMoL._SL160_.jpg");
urls[32] = new URL("http://ecx.images-amazon.com/images/I/51tr3o4kd9L._SL160_.jpg");
urls[33] = new URL("http://ecx.images-amazon.com/images/I/5128-LvpmZL._SL160_.jpg");
urls[34] = new URL("http://ecx.images-amazon.com/images/I/51leTIgrqWL._SL160_.jpg");
urls[35] = new URL("http://ecx.images-amazon.com/images/I/41RpWVBJz6L._SL160_.jpg");
urls[36] = new URL("http://ecx.images-amazon.com/images/I/51VjeYTFzOL._SL160_.jpg");
urls[37] = new URL("http://ecx.images-amazon.com/images/I/61VQl%2B0YfQL._SL160_.jpg");
urls[38] = new URL("http://ecx.images-amazon.com/images/I/41mJt4IVkhL._SL160_.jpg");
urls[39] = new URL("http://ecx.images-amazon.com/images/I/417ZNQ5C1FL._SL160_.jpg");
urls[40] = new URL("http://ecx.images-amazon.com/images/I/511zXx9fdCL._SL160_.jpg");
urls[41] = new URL("http://ecx.images-amazon.com/images/I/61OycahzgyL._SL160_.jpg");
urls[42] = new URL("http://ecx.images-amazon.com/images/I/51eCZAq37qL._SL160_.jpg");
urls[43] = new URL("http://ecx.images-amazon.com/images/I/5113GxfgY3L._SL160_.jpg");
urls[44] = new URL("http://ecx.images-amazon.com/images/I/61xnT6WcaEL._SL160_.jpg");
urls[45] = new URL("http://ecx.images-amazon.com/images/I/51QWxgU9N2L._SL160_.jpg");
urls[46] = new URL("http://ecx.images-amazon.com/images/I/5149PFGq8rL._SL160_.jpg");
urls[47] = new URL("http://ecx.images-amazon.com/images/I/617W9ZTJGBL._SL160_.jpg");
urls[48] = new URL("http://ecx.images-amazon.com/images/I/513JTvJWpFL._SL160_.jpg");
urls[49] = new URL("http://ecx.images-amazon.com/images/I/6114I6QC7BL._SL160_.jpg");
urls[50] = new URL("http://ecx.images-amazon.com/images/I/216QZM5FJ8L._SL160_.jpg");
urls[51] = new URL("http://ecx.images-amazon.com/images/I/413WE38pDRL._SL160_.jpg");
urls[52] = new URL("http://ecx.images-amazon.com/images/I/51LSN2zSeAL._SL160_.jpg");
urls[53] = new URL("http://ecx.images-amazon.com/images/I/51PzHVqOMwL._SL160_.jpg");
urls[54] = new URL("http://ecx.images-amazon.com/images/I/61GWhfvALPL._SL160_.jpg");
urls[55] = new URL("http://ecx.images-amazon.com/images/I/41C5ZXEZwrL._SL160_.jpg");
urls[56] = new URL("http://ecx.images-amazon.com/images/I/61teoR6B8JL._SL160_.jpg");
urls[57] = new URL("http://ecx.images-amazon.com/images/I/51rnHibCn2L._SL160_.jpg");
urls[58] = new URL("http://ecx.images-amazon.com/images/I/511aIQsGmhL._SL160_.jpg");
urls[59] = new URL("http://ecx.images-amazon.com/images/I/51YgnRCFdOL._SL160_.jpg");
urls[60] = new URL("http://ecx.images-amazon.com/images/I/51uAqL4pA4L._SL160_.jpg");
urls[61] = new URL("http://ecx.images-amazon.com/images/I/514FnLMr5vL._SL160_.jpg");
urls[62] = new URL("http://ecx.images-amazon.com/images/I/51NoPs4muzL._SL160_.jpg");
urls[63] = new URL("http://ecx.images-amazon.com/images/I/515ndTGE9kL._SL160_.jpg");
urls[64] = new URL("http://ecx.images-amazon.com/images/I/61XRtZ08c6L._SL160_.jpg");
urls[65] = new URL("http://ecx.images-amazon.com/images/I/61kDVs82oRL._SL160_.jpg");
urls[66] = new URL("http://ecx.images-amazon.com/images/I/61p85bjPV%2BL._SL160_.jpg");
urls[67] = new URL("http://ecx.images-amazon.com/images/I/41JDQF9F5ML._SL160_.jpg");
urls[68] = new URL("http://ecx.images-amazon.com/images/I/51ZqPCspJeL._SL160_.jpg");
urls[69] = new URL("http://ecx.images-amazon.com/images/I/51cMFdhLFSL._SL160_.jpg");
final ImageIcon[] icons = new ImageIcon[70];
for (int i=0; i<urls.length; i++) {
icons[i] = new ImageIcon(urls[i]);
System.out.println("iconWidth=" + icons[i].getIconWidth() + ", image.width=" + icons[i].getImage().getWidth(null) + " imageLoadStatus=" + icons[i].getImageLoadStatus());
i++;
}
System.out.println("Wait a little....");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i=0; i<urls.length; i++) {
final int iconWidth = icons[i].getIconWidth();
final int width = icons[i].getImage().getWidth(null);
System.out.print("iconWidth=" + iconWidth + ", image.width=" + width);
if (iconWidth != width) System.out.println(" ***** icon width is not correct *****");
else System.out.println();
i++;
}
}
}
---------- END SOURCE ----------
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b05)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b05, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Darwin mankell 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
A DESCRIPTION OF THE PROBLEM :
Every now and then, MediaTracking of an ImageIcon does not seem to work all the way.
The width reported by iconImage.getIconWidth() does not match the width reported by iconImage.getImage().getWidth(null).
In earlier JDK versions, this did not occur.
Here's what I expect:
a call to:
IconImage icon = new ImageIcon(someHttpURL);
will load the image via HTTP and only return once the image has been completely loaded.
When that happens, icon.getIconWidth() will return the image's width.
It will be the same as icon.getImage().getWidth(null).
This, I tested, is true for Java 1.8.0.
This is what I observe:
On 1.8.0u20, every now and then,
icon.getIconWidth() returns -1, even though the URL is clearly valid.
icon.getImage().getWidth(null) also return -1.
However, after waiting a little while,
icon.getIconWidth() still returns -1 and
icon.getImage().getWidth(null) returns the true width
So it seems to me, that the MediaTracker used in ImageIcon, does not wait until the image is fully loaded, in fact, it returns a status 10 (aborted).
REGRESSION. Last worked in version 8
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b129)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b69, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the provided class.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=113, image.width=113 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=130, image.width=130 imageLoadStatus=8
iconWidth=159, image.width=159 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
Wait a little....
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=113, image.width=113
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=130, image.width=130
iconWidth=159, image.width=159
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
ACTUAL -
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=113, image.width=113 imageLoadStatus=8
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
iconWidth=159, image.width=159 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=8
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=160, image.width=160 imageLoadStatus=10
iconWidth=-1, image.width=-1 imageLoadStatus=10
Wait a little....
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=113, image.width=113
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=-1, image.width=160 ***** icon width is not correct *****
iconWidth=160, image.width=160
iconWidth=-1, image.width=130 ***** icon width is not correct *****
iconWidth=159, image.width=159
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=160, image.width=160
iconWidth=-1, image.width=160 ***** icon width is not correct *****
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.net.MalformedURLException;
import java.net.URL;
public class IconImageTest {
public static void main(String[] args) throws MalformedURLException {
final URL[] urls = new URL[70];
urls[0] = new URL("http://ecx.images-amazon.com/images/I/414h77wL4EL._SL160_.jpg");
urls[1] = new URL("http://ecx.images-amazon.com/images/I/515pogBxO9L._SL160_.jpg");
urls[2] = new URL("http://ecx.images-amazon.com/images/I/41I1vwgqsXL._SL160_.jpg");
urls[3] = new URL("http://ecx.images-amazon.com/images/I/51-JzKwWe-L._SL160_.jpg");
urls[4] = new URL("http://ecx.images-amazon.com/images/I/51V5n3XX4sL._SL160_.jpg");
urls[5] = new URL("http://ecx.images-amazon.com/images/I/610zMH8VYyL._SL160_.jpg");
urls[6] = new URL("http://ecx.images-amazon.com/images/I/51pmAKfwTlL._SL160_.jpg");
urls[7] = new URL("http://ecx.images-amazon.com/images/I/61vHzDEgxgL._SL160_.jpg");
urls[8] = new URL("http://ecx.images-amazon.com/images/I/51TAPDNMBdL._SL160_.jpg");
urls[9] = new URL("http://ecx.images-amazon.com/images/I/51ZuY7zfsfL._SL160_.jpg");
urls[10] = new URL("http://ecx.images-amazon.com/images/I/41Upfpq4XnL._SL160_.jpg");
urls[11] = new URL("http://ecx.images-amazon.com/images/I/51zSTVJM6nL._SL160_.jpg");
urls[12] = new URL("http://ecx.images-amazon.com/images/I/51-6wmW4swL._SL160_.jpg");
urls[13] = new URL("http://ecx.images-amazon.com/images/I/51gmuw5qUrL._SL160_.jpg");
urls[14] = new URL("http://ecx.images-amazon.com/images/I/41NYyfjNZjL._SL160_.jpg");
urls[15] = new URL("http://ecx.images-amazon.com/images/I/51RNerVHKRL._SL160_.jpg");
urls[16] = new URL("http://ecx.images-amazon.com/images/I/51KpoPP738L._SL160_.jpg");
urls[17] = new URL("http://ecx.images-amazon.com/images/I/61iKyNi5UKL._SL160_.jpg");
urls[18] = new URL("http://ecx.images-amazon.com/images/I/61iGFtl2YmL._SL160_.jpg");
urls[19] = new URL("http://ecx.images-amazon.com/images/I/41fos%2BEksdL._SL160_.jpg");
urls[20] = new URL("http://ecx.images-amazon.com/images/I/51RpKf9APDL._SL160_.jpg");
urls[21] = new URL("http://ecx.images-amazon.com/images/I/61e21Jz2yiL._SL160_.jpg");
urls[22] = new URL("http://ecx.images-amazon.com/images/I/51AmYeBsMCL._SL160_.jpg");
urls[23] = new URL("http://ecx.images-amazon.com/images/I/61aETwYg8PL._SL160_.jpg");
urls[24] = new URL("http://ecx.images-amazon.com/images/I/61m5%2BVAZrrL._SL160_.jpg");
urls[25] = new URL("http://ecx.images-amazon.com/images/I/51nA1JIuRNL._SL160_.jpg");
urls[26] = new URL("http://ecx.images-amazon.com/images/I/41GRH80LYeL._SL160_.jpg");
urls[27] = new URL("http://ecx.images-amazon.com/images/I/41IhcL9HZkL._SL160_.jpg");
urls[28] = new URL("http://ecx.images-amazon.com/images/I/51k-Q52GnFL._SL160_.jpg");
urls[29] = new URL("http://ecx.images-amazon.com/images/I/51SQ3BkujSL._SL160_.jpg");
urls[30] = new URL("http://ecx.images-amazon.com/images/I/41iJNnii-ZL._SL160_.jpg");
urls[31] = new URL("http://ecx.images-amazon.com/images/I/41etRDeiMoL._SL160_.jpg");
urls[32] = new URL("http://ecx.images-amazon.com/images/I/51tr3o4kd9L._SL160_.jpg");
urls[33] = new URL("http://ecx.images-amazon.com/images/I/5128-LvpmZL._SL160_.jpg");
urls[34] = new URL("http://ecx.images-amazon.com/images/I/51leTIgrqWL._SL160_.jpg");
urls[35] = new URL("http://ecx.images-amazon.com/images/I/41RpWVBJz6L._SL160_.jpg");
urls[36] = new URL("http://ecx.images-amazon.com/images/I/51VjeYTFzOL._SL160_.jpg");
urls[37] = new URL("http://ecx.images-amazon.com/images/I/61VQl%2B0YfQL._SL160_.jpg");
urls[38] = new URL("http://ecx.images-amazon.com/images/I/41mJt4IVkhL._SL160_.jpg");
urls[39] = new URL("http://ecx.images-amazon.com/images/I/417ZNQ5C1FL._SL160_.jpg");
urls[40] = new URL("http://ecx.images-amazon.com/images/I/511zXx9fdCL._SL160_.jpg");
urls[41] = new URL("http://ecx.images-amazon.com/images/I/61OycahzgyL._SL160_.jpg");
urls[42] = new URL("http://ecx.images-amazon.com/images/I/51eCZAq37qL._SL160_.jpg");
urls[43] = new URL("http://ecx.images-amazon.com/images/I/5113GxfgY3L._SL160_.jpg");
urls[44] = new URL("http://ecx.images-amazon.com/images/I/61xnT6WcaEL._SL160_.jpg");
urls[45] = new URL("http://ecx.images-amazon.com/images/I/51QWxgU9N2L._SL160_.jpg");
urls[46] = new URL("http://ecx.images-amazon.com/images/I/5149PFGq8rL._SL160_.jpg");
urls[47] = new URL("http://ecx.images-amazon.com/images/I/617W9ZTJGBL._SL160_.jpg");
urls[48] = new URL("http://ecx.images-amazon.com/images/I/513JTvJWpFL._SL160_.jpg");
urls[49] = new URL("http://ecx.images-amazon.com/images/I/6114I6QC7BL._SL160_.jpg");
urls[50] = new URL("http://ecx.images-amazon.com/images/I/216QZM5FJ8L._SL160_.jpg");
urls[51] = new URL("http://ecx.images-amazon.com/images/I/413WE38pDRL._SL160_.jpg");
urls[52] = new URL("http://ecx.images-amazon.com/images/I/51LSN2zSeAL._SL160_.jpg");
urls[53] = new URL("http://ecx.images-amazon.com/images/I/51PzHVqOMwL._SL160_.jpg");
urls[54] = new URL("http://ecx.images-amazon.com/images/I/61GWhfvALPL._SL160_.jpg");
urls[55] = new URL("http://ecx.images-amazon.com/images/I/41C5ZXEZwrL._SL160_.jpg");
urls[56] = new URL("http://ecx.images-amazon.com/images/I/61teoR6B8JL._SL160_.jpg");
urls[57] = new URL("http://ecx.images-amazon.com/images/I/51rnHibCn2L._SL160_.jpg");
urls[58] = new URL("http://ecx.images-amazon.com/images/I/511aIQsGmhL._SL160_.jpg");
urls[59] = new URL("http://ecx.images-amazon.com/images/I/51YgnRCFdOL._SL160_.jpg");
urls[60] = new URL("http://ecx.images-amazon.com/images/I/51uAqL4pA4L._SL160_.jpg");
urls[61] = new URL("http://ecx.images-amazon.com/images/I/514FnLMr5vL._SL160_.jpg");
urls[62] = new URL("http://ecx.images-amazon.com/images/I/51NoPs4muzL._SL160_.jpg");
urls[63] = new URL("http://ecx.images-amazon.com/images/I/515ndTGE9kL._SL160_.jpg");
urls[64] = new URL("http://ecx.images-amazon.com/images/I/61XRtZ08c6L._SL160_.jpg");
urls[65] = new URL("http://ecx.images-amazon.com/images/I/61kDVs82oRL._SL160_.jpg");
urls[66] = new URL("http://ecx.images-amazon.com/images/I/61p85bjPV%2BL._SL160_.jpg");
urls[67] = new URL("http://ecx.images-amazon.com/images/I/41JDQF9F5ML._SL160_.jpg");
urls[68] = new URL("http://ecx.images-amazon.com/images/I/51ZqPCspJeL._SL160_.jpg");
urls[69] = new URL("http://ecx.images-amazon.com/images/I/51cMFdhLFSL._SL160_.jpg");
final ImageIcon[] icons = new ImageIcon[70];
for (int i=0; i<urls.length; i++) {
icons[i] = new ImageIcon(urls[i]);
System.out.println("iconWidth=" + icons[i].getIconWidth() + ", image.width=" + icons[i].getImage().getWidth(null) + " imageLoadStatus=" + icons[i].getImageLoadStatus());
i++;
}
System.out.println("Wait a little....");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i=0; i<urls.length; i++) {
final int iconWidth = icons[i].getIconWidth();
final int width = icons[i].getImage().getWidth(null);
System.out.print("iconWidth=" + iconWidth + ", image.width=" + width);
if (iconWidth != width) System.out.println(" ***** icon width is not correct *****");
else System.out.println();
i++;
}
}
}
---------- END SOURCE ----------
Attachments
Issue Links
- backported by
-
JDK-8044106 [macosx] Http-Images are not fully loaded when using ImageIcon
-
- Resolved
-
-
JDK-8045684 [macosx] Http-Images are not fully loaded when using ImageIcon
-
- Resolved
-
-
JDK-8053628 [macosx] Http-Images are not fully loaded when using ImageIcon
-
- Resolved
-