Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 11509)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 11510)
@@ -580,7 +580,5 @@
      * Should set {@link #menu}
      */
-    protected void initializeMainWindow() {
-        // can be implementd by subclasses
-    }
+    protected abstract void initializeMainWindow();
 
     private static class InitializationTask implements Callable<Void> {
Index: trunk/src/org/openstreetmap/josm/data/imagery/CachedAttributionBingAerialTileSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/CachedAttributionBingAerialTileSource.java	(revision 11509)
+++ trunk/src/org/openstreetmap/josm/data/imagery/CachedAttributionBingAerialTileSource.java	(revision 11510)
@@ -4,4 +4,5 @@
 import java.io.IOException;
 import java.io.StringReader;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
@@ -14,4 +15,5 @@
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.io.CacheCustomContent;
+import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.HttpClient;
 import org.xml.sax.InputSource;
@@ -58,4 +60,14 @@
             return r.getBytes("UTF-8");
         }
+
+        @Override
+        protected void checkOfflineAccess() {
+            try {
+                String attributionUrl = getAttributionUrl().toExternalForm();
+                OnlineResource.ALL.checkOfflineAccess(attributionUrl, attributionUrl);
+            } catch (MalformedURLException e) {
+                Main.error(e);
+            }
+        }
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java	(revision 11509)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java	(revision 11510)
@@ -214,6 +214,5 @@
         }
 
-        protected void applyValueToLayer(T layer) {
-        }
+        abstract void applyValueToLayer(T layer);
 
         protected double getRealValue() {
Index: trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java	(revision 11509)
+++ trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java	(revision 11510)
@@ -103,7 +103,9 @@
     }
 
-    protected void checkOfflineAccess() {
-        // To be overriden by subclasses
-    }
+    /**
+     * Ensures underlying resource is not accessed in offline mode.
+     * @throws OfflineAccessException if resource is accessed in offline mode
+     */
+    protected abstract void checkOfflineAccess();
 
     /**
