Index: /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7133)
+++ /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7134)
@@ -63,4 +63,5 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 import org.xml.sax.Attributes;
 import org.xml.sax.EntityResolver;
@@ -1272,19 +1273,22 @@
                         Node root = metadata.getAsTree(f);
                         if (root instanceof Element) {
-                            Node item = ((Element)root).getElementsByTagName("TransparentColor").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]);
+                            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);
                                     }
-                                }
+                            }
                             }
                         }
Index: /trunk/test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java	(revision 7133)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java	(revision 7134)
@@ -29,3 +29,13 @@
         assertThat(ImageProvider.read(file, true, false).getTransparency(), is(Transparency.OPAQUE));
     }
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/10030">#10030</a>
+     * @throws IOException if an error occurs during reading
+     */
+    @Test
+    public void testTicket10030() throws IOException {
+        File file = new File(TestUtils.getTestDataRoot()+"regress/10030/tile.jpg");
+        ImageProvider.read(file, true, true);
+    }
 }
