throw IO when image is used on close
authorNiki Roo <niki@nikiroo.be>
Tue, 26 May 2020 19:08:11 +0000 (21:08 +0200)
committerNiki Roo <niki@nikiroo.be>
Tue, 26 May 2020 19:08:11 +0000 (21:08 +0200)
src/be/nikiroo/utils/Image.java

index 4518577d640b684bee939381e02b9aa745b2d3a2..9b28835e0fd61585023edf83db5ba19dea0030db 100644 (file)
@@ -116,7 +116,13 @@ public class Image implements Closeable, Serializable {
         *             in case of I/O error
         */
        public InputStream newInputStream() throws IOException {
-               return new MarkableFileInputStream(data);
+               synchronized (instanceLock) {
+                       if (data == null) {
+                               throw new IOException("Image was close()d");
+                       }
+                       
+                       return new MarkableFileInputStream(data);       
+               }
        }
 
        /**
@@ -175,6 +181,7 @@ public class Image implements Closeable, Serializable {
        @Override
        public void close() throws IOException {
                synchronized (instanceLock) {
+                       new Exception().printStackTrace();
                        if (size >= 0) {
                                size = -1;
                                data.delete();