JDK-7118990 : cache: Shortcut points to non existant image after update of just the image
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 7,7u4
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic,windows
  • CPU: generic
  • Submitted: 2011-12-07
  • Updated: 2017-05-23
  • Resolved: 2017-05-23
Related Reports
Duplicate :  
Relates :  
Description
see: 7116127, which describes this problem while only fixing the case where both jnlp file and image are updated.

an  ico file is generated by IcoEncoder.java when one of the image files is being used for a shortcut.
The file is tagged in the cache entry with a shortcutImage flag, and the clenaup thread then knows not to remove it.
But if the original image resource is updated, you get to removeCacheEntryImpl(), and the image file along with any ".ico" file generated from it are removed.

The "default" image file is treated like a resource.  that is, LaunchDownload.downloadEagerAll() will download or update it from prepareResources(), if update mode is background then LDUpdater will do the same thing.
in either case the .ico file previously generated for a shortcut will be removed, and the shortcut will point to a non-existant file.

Comments
EVALUATION Update of production application icon happens not often. When it happens usually along with the change of icon URL, hence change to JNLP file. So this is definitely low priority. However, it would be good to review our icon and desktop implementation to make it less prone to icon location changes.
05-09-2012

WORK AROUND update the jnlp file whenever updating the image, actually change it, just touching it will not work.
07-12-2011