diff options
author | smallsql <smallsql> | 2014-10-27 11:48:46 +0300 |
---|---|---|
committer | smallsql <smallsql> | 2014-10-27 11:48:46 +0300 |
commit | a71abadf98c2df656adad8e46d83b663dfcc49a4 (patch) | |
tree | bb00e3cd2bde89db0e2a0bb9fc2fcaf76d17ded9 | |
parent | 5f3a05e3d3a6f9738ea4e7c3526dffb80bf3a47e (diff) |
synchronise bitmap to fix a sporadic: cli.System.InvalidOperationException: Object is currently in use elsewhere.
-rw-r--r-- | openjdk/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/openjdk/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java b/openjdk/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java index a5891a7c..0c7516f7 100644 --- a/openjdk/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java +++ b/openjdk/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java @@ -108,7 +108,6 @@ public class JPEGImageWriter extends ImageWriter { } BufferedImage img = (BufferedImage)image.getRenderedImage(); - cli.System.Drawing.Bitmap bitmap = img.getBitmap(); ImageOutputStream imgOutput = (ImageOutputStream)getOutput(); @@ -151,7 +150,10 @@ public class JPEGImageWriter extends ImageWriter { try { params.get_Param()[0] = new EncoderParameter(Encoder.LuminanceTable, qTableToShortArray(qTables[0])); params.get_Param()[1] = new EncoderParameter(Encoder.ChrominanceTable, qTableToShortArray(qTables[1])); - bitmap.Save(stream, codec, params); + cli.System.Drawing.Bitmap bitmap = img.getBitmap(); + synchronized( bitmap ) { + bitmap.Save(stream, codec, params); + } } finally { params.Dispose(); |