Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java	(revision 31431)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/JMapViewer.java	(revision 31432)
@@ -44,5 +44,5 @@
 public class JMapViewer extends JPanel implements TileLoaderListener {
 
-    public static final boolean DEBUG = false;
+    public static boolean debug = false;
 
     /**
Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31431)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31432)
@@ -144,5 +144,5 @@
             } catch (NumberFormatException e) {
                 // ignore malformed Cache-Control headers
-                if (JMapViewer.DEBUG) {
+                if (JMapViewer.debug) {
                     System.err.println(e.getMessage());
                 }
Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 31431)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 31432)
@@ -196,5 +196,5 @@
                 for (int i = 0; i < 5 && getAttribution() == null; i++) {
                     // Makes sure attribution is loaded
-                    if (JMapViewer.DEBUG) {
+                    if (JMapViewer.debug) {
                         System.out.println("Bing attribution attempt " + (i+1));
                     }
Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/TileSourceInfo.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/TileSourceInfo.java	(revision 31431)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/TileSourceInfo.java	(revision 31432)
@@ -13,11 +13,11 @@
 public class TileSourceInfo {
     /** id for this imagery entry, optional at the moment */
-    protected final String id;
+    protected String id;
 
     /** URL of the imagery service */
-    protected final String url;
+    protected String url;
 
     /** name of the imagery layer */
-    protected final String name;
+    protected String name;
 
     /** headers meaning, that there is no tile at this zoom level */
@@ -85,5 +85,6 @@
 
     /**
-     * Request ID of the tile source
+     * Request ID of the tile source. Id can be null. This gets the configured id as is.
+     * Due to a user error, this may not be unique.
      * @return id of the tile source
      */
@@ -133,8 +134,17 @@
 
     /**
+     * Request metadata headers
+     * @return mapping &lt;HTTP header name, Metadata key name&gt; for copying HTTP headers to Tile metadata
+     * @since 31125
+     */
+    public Map<String, String> getMetadataHeaders() {
+        return metadataHeaders;
+    }
+
+    /**
      * Sets the tile size provided by this tile source
      * @param tileSize tile size in pixels
      */
-    public void setTileSize(int tileSize) {
+    public final void setTileSize(int tileSize) {
         if (tileSize == 0 || tileSize < -1) {
             throw new AssertionError("Invalid tile size: " + tileSize);
@@ -144,10 +154,25 @@
 
     /**
-     *
-     * @return mapping &lt;HTTP header name, Metadata key name&gt; for copying HTTP headers to Tile metadata
-     * @since 31125
+     * Sets the tile URL.
+     * @param url tile URL
      */
-    public Map<String, String> getMetadataHeaders() {
-        return metadataHeaders;
+    public final void setUrl(String url) {
+        this.url = url;
+    }
+
+    /**
+     * Sets the tile name.
+     * @param name tile name
+     */
+    public final void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Sets the tile id.
+     * @param id tile id
+     */
+    public final void setId(String id) {
+        this.id = id;
     }
 }
