diff --git a/user/super/com/google/gwt/emul/java/util/logging/LogManager.java b/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
index b5374c2..e5c3b68 100644
--- a/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
+++ b/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
@@ -70,7 +70,7 @@
   private void addLoggerAndEnsureParents(Logger logger) {
     String name = logger.getName();
     String parentName = name.substring(0, Math.max(0, name.lastIndexOf('.')));
-    logger.setParent(ensureLogger(parentName, logger.getResourceBundleName()));
+    logger.setParent(ensureLogger(parentName));
     addLoggerImpl(logger);
   }
 
@@ -88,10 +88,10 @@
    *  APIs for getLogger and addLogger make it difficult to use those functions
    *  for this.
    */
-  Logger ensureLogger(String name, String resourceName) {
+  Logger ensureLogger(String name) {
     Logger logger = getLogger(name);
     if (logger == null) {
-      Logger newLogger = new Logger(name, resourceName);
+      Logger newLogger = new Logger(name, null);
       addLoggerAndEnsureParents(newLogger);
       return newLogger;
     }
diff --git a/user/super/com/google/gwt/emul/java/util/logging/Logger.java b/user/super/com/google/gwt/emul/java/util/logging/Logger.java
index dba7351..8c318a3 100644
--- a/user/super/com/google/gwt/emul/java/util/logging/Logger.java
+++ b/user/super/com/google/gwt/emul/java/util/logging/Logger.java
@@ -46,15 +46,11 @@
   }
 
   public static Logger getLogger(String name) {
-    return getLogger(name, null);
-  }
-
-  public static Logger getLogger(String name, String resourceName) {
     // Use shortcut if logging is disabled to avoid parent logger creations in LogManager
     if (LOGGING_FALSE) {
-      return new Logger(name, resourceName);
+      return new Logger(name, null);
     }
-    return LogManager.getLogManager().ensureLogger(name, resourceName);
+    return LogManager.getLogManager().ensureLogger(name);
   }
 
   static void assertLoggingValues() {
@@ -159,10 +155,6 @@
     return LOGGING_FALSE ? null : parent;
   }
 
-  public String getResourceBundleName() {
-    return null;
-  }
-
   public boolean getUseParentHandlers() {
     return LOGGING_FALSE ? false : useParentHandlers;
   }
@@ -284,7 +276,9 @@
   // public static Logger getAnonymousLogger() {
   // public static Logger getAnonymousLogger(String resourceBundleName) {}
   // public Filter getFilter() {}
+  // public static Logger getLogger(String name, String resourceBundleName) {}
   // public ResourceBundle getResourceBundle() {}
+  // public String getResourceBundleName() {}
   // public void setFilter(Filter newFilter) {}
   // public void entering(String sourceClass, String sourceMethod) {}
   // public void entering(String sourceClass, String sourceMethod, Object param1) {}
