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