Index: trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7312)
+++ trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7313)
@@ -59,4 +59,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.plugins.PluginHandler;
 import org.w3c.dom.Element;
@@ -74,5 +75,4 @@
 import com.kitfox.svg.SVGException;
 import com.kitfox.svg.SVGUniverse;
-import org.openstreetmap.josm.io.CachedFile;
 
 /**
@@ -1264,36 +1264,41 @@
      */
     public static Color getTransparentColor(ImageReader reader) throws IOException {
-        IIOMetadata metadata = reader.getImageMetadata(0);
-        if (metadata != null) {
-            String[] formats = metadata.getMetadataFormatNames();
-            if (formats != null) {
-                for (String f : formats) {
-                    if ("javax_imageio_1.0".equals(f)) {
-                        Node root = metadata.getAsTree(f);
-                        if (root instanceof Element) {
-                            NodeList list = ((Element)root).getElementsByTagName("TransparentColor");
-                            if (list.getLength() > 0) {
-                                Node item = list.item(0);
-                                if (item instanceof Element) {
-                                    String value = ((Element)item).getAttribute("value");
-                                    String[] s = value.split(" ");
-                                    if (s.length == 3) {
-                                        int[] rgb = new int[3];
-                                        try {
-                                            for (int i = 0; i<3; i++) {
-                                                rgb[i] = Integer.parseInt(s[i]);
+        try {
+            IIOMetadata metadata = reader.getImageMetadata(0);
+            if (metadata != null) {
+                String[] formats = metadata.getMetadataFormatNames();
+                if (formats != null) {
+                    for (String f : formats) {
+                        if ("javax_imageio_1.0".equals(f)) {
+                            Node root = metadata.getAsTree(f);
+                            if (root instanceof Element) {
+                                NodeList list = ((Element)root).getElementsByTagName("TransparentColor");
+                                if (list.getLength() > 0) {
+                                    Node item = list.item(0);
+                                    if (item instanceof Element) {
+                                        String value = ((Element)item).getAttribute("value");
+                                        String[] s = value.split(" ");
+                                        if (s.length == 3) {
+                                            int[] rgb = new int[3];
+                                            try {
+                                                for (int i = 0; i<3; i++) {
+                                                    rgb[i] = Integer.parseInt(s[i]);
+                                                }
+                                                return new Color(rgb[0], rgb[1], rgb[2]);
+                                            } catch (IllegalArgumentException e) {
+                                                Main.error(e);
                                             }
-                                            return new Color(rgb[0], rgb[1], rgb[2]);
-                                        } catch (IllegalArgumentException e) {
-                                            Main.error(e);
                                         }
-                                    }
+                                }
+                                }
                             }
-                            }
+                            break;
                         }
-                        break;
                     }
                 }
             }
+        } catch (IIOException e) {
+            // JAI doesn't like some JPEG files with error "Inconsistent metadata read from stream" (see #10267)
+            Main.warn(e);
         }
         return null;
