fixed resource management for generated images
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/GC.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/GC.java index be62a2a..dc377a2 100644 --- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/GC.java +++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/GC.java
@@ -20,6 +20,7 @@ import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; +import org.eclipse.rwt.RWT; import org.eclipse.rwt.internal.ConfigurationReader; import org.eclipse.rwt.internal.IEngineConfig; import org.eclipse.rwt.internal.resources.ResourceManager; @@ -567,6 +568,11 @@ } finally { writer.dispose(); } + try { + RWT.getResourceManager().register( "generated_" + image.hashCode(), new FileInputStream( location ) ); + } catch( FileNotFoundException e ) { + e.printStackTrace(); + } } private static ImageWriter getImageWriter() { @@ -584,8 +590,7 @@ private static File getImageResourceLocation( final Image image ) { IEngineConfig engineConfig = ConfigurationReader.getEngineConfig(); File serverContextDir = engineConfig.getServerContextDir(); - String filename = "gen_" + image.hashCode(); - ResourceFactory.images.put( filename, image ); + String filename = "rwt-resources/resources/generated/image_" + image.hashCode(); return new File( serverContextDir, filename ); }
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/Image.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/Image.java index 51ded8f..d0bcc38 100644 --- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/Image.java +++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/graphics/Image.java
@@ -97,7 +97,7 @@ public Image( Display display, int x, int y ) { this.width = x; this.height = y; - ResourceFactory.images.put( "resources/generated/image_" + Math.random(), this ); + ResourceFactory.images.put( "generated_" + this.hashCode(), this ); } // RAP [bm]: e4-enabling hacks