src/share/classes/sun/awt/SunToolkit.java

Print this page

        

*** 709,834 **** */ public static boolean getSunAwtErasebackgroundonresize() { return AccessController.doPrivileged(new GetBooleanAction("sun.awt.erasebackgroundonresize")); } ! ! static final SoftCache imgCache = new SoftCache(); ! ! static Image getImageFromHash(Toolkit tk, URL url) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) { ! try { ! java.security.Permission perm = ! url.openConnection().getPermission(); ! if (perm != null) { ! try { ! sm.checkPermission(perm); ! } catch (SecurityException se) { ! // fallback to checkRead/checkConnect for pre 1.2 ! // security managers ! if ((perm instanceof java.io.FilePermission) && ! perm.getActions().indexOf("read") != -1) { ! sm.checkRead(perm.getName()); ! } else if ((perm instanceof ! java.net.SocketPermission) && ! perm.getActions().indexOf("connect") != -1) { ! sm.checkConnect(url.getHost(), url.getPort()); ! } else { ! throw se; ! } ! } ! } ! } catch (java.io.IOException ioe) { ! sm.checkConnect(url.getHost(), url.getPort()); ! } ! } ! synchronized (imgCache) { ! Image img = (Image)imgCache.get(url); ! if (img == null) { ! try { ! img = tk.createImage(new URLImageSource(url)); ! imgCache.put(url, img); ! } catch (Exception e) { ! } ! } ! return img; ! } ! } ! ! static Image getImageFromHash(Toolkit tk, ! String filename) { ! SecurityManager security = System.getSecurityManager(); ! if (security != null) { ! security.checkRead(filename); ! } ! synchronized (imgCache) { ! Image img = (Image)imgCache.get(filename); ! if (img == null) { ! try { ! img = tk.createImage(new FileImageSource(filename)); ! imgCache.put(filename, img); ! } catch (Exception e) { ! } ! } ! return img; ! } ! } ! public Image getImage(String filename) { ! return getImageFromHash(this, filename); } public Image getImage(URL url) { ! return getImageFromHash(this, url); } public Image createImage(String filename) { ! SecurityManager security = System.getSecurityManager(); ! if (security != null) { ! security.checkRead(filename); ! } ! return createImage(new FileImageSource(filename)); } public Image createImage(URL url) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) { ! try { ! java.security.Permission perm = ! url.openConnection().getPermission(); ! if (perm != null) { ! try { ! sm.checkPermission(perm); ! } catch (SecurityException se) { ! // fallback to checkRead/checkConnect for pre 1.2 ! // security managers ! if ((perm instanceof java.io.FilePermission) && ! perm.getActions().indexOf("read") != -1) { ! sm.checkRead(perm.getName()); ! } else if ((perm instanceof ! java.net.SocketPermission) && ! perm.getActions().indexOf("connect") != -1) { ! sm.checkConnect(url.getHost(), url.getPort()); ! } else { ! throw se; ! } ! } ! } ! } catch (java.io.IOException ioe) { ! sm.checkConnect(url.getHost(), url.getPort()); ! } ! } ! return createImage(new URLImageSource(url)); } public Image createImage(byte[] data, int offset, int length) { ! return createImage(new ByteArrayImageSource(data, offset, length)); } public Image createImage(ImageProducer producer) { ! return new ToolkitImage(producer); } public int checkImage(Image img, int w, int h, ImageObserver o) { if (!(img instanceof ToolkitImage)) { return ImageObserver.ALLBITS; --- 709,747 ---- */ public static boolean getSunAwtErasebackgroundonresize() { return AccessController.doPrivileged(new GetBooleanAction("sun.awt.erasebackgroundonresize")); } ! @Override public Image getImage(String filename) { ! return ToolkitImageUtil.getImage(this, filename); } + @Override public Image getImage(URL url) { ! return ToolkitImageUtil.getImage(this, url); } + @Override public Image createImage(String filename) { ! return ToolkitImageUtil.createImage(filename); } + @Override public Image createImage(URL url) { ! return ToolkitImageUtil.createImage(url); } + @Override public Image createImage(byte[] data, int offset, int length) { ! return ToolkitImageUtil.createImage( ! new ByteArrayImageSource(data, offset, length)); } + @Override public Image createImage(ImageProducer producer) { ! return ToolkitImageUtil.createImage(producer); } public int checkImage(Image img, int w, int h, ImageObserver o) { if (!(img instanceof ToolkitImage)) { return ImageObserver.ALLBITS;