class ResourceBundleWithFallback extends ResourceBundle {

  private final ResourceBundle bundle;
  private final ResourceBundle fallbackBundle;

  public ResourceBundleWithFallback(ResourceBundle bundle, ResourceBundle fallbackBundle) {
    this.bundle = bundle;
    this.fallbackBundle = fallbackBundle;
  }

  @Override
  public Object handleGetObject(String key) {<FILL_FUNCTION_BODY>}

  @Override
  public Enumeration<String> getKeys() {
    return bundle.getKeys();
  }

}

    String s = bundle.getString(key);
    if (s.trim().isEmpty()) {
      return fallbackBundle.getString(key);
    }
    return s;
  
<methods>public void <init>() ,public static final void clearCache() ,public static final void clearCache(java.lang.ClassLoader) ,public boolean containsKey(java.lang.String) ,public java.lang.String getBaseBundleName() ,public static final java.util.ResourceBundle getBundle(java.lang.String) ,public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control) ,public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale) ,public static java.util.ResourceBundle getBundle(java.lang.String, java.lang.Module) ,public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.Module) ,public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control) ,public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) ,public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control) ,public abstract Enumeration<java.lang.String> getKeys() ,public java.util.Locale getLocale() ,public final java.lang.Object getObject(java.lang.String) ,public final java.lang.String getString(java.lang.String) ,public final java.lang.String[] getStringArray(java.lang.String) ,public Set<java.lang.String> keySet() <variables>static final boolean $assertionsDisabled,private static final int INITIAL_CACHE_SIZE,private static final java.util.ResourceBundle NONEXISTENT_BUNDLE,private static final boolean TRACE_ON,private static final java.lang.String UNKNOWN_FORMAT,private volatile java.util.ResourceBundle.CacheKey cacheKey,private static final ConcurrentMap<java.util.ResourceBundle.CacheKey,java.util.ResourceBundle.BundleReference> cacheList,private volatile boolean expired,private volatile Set<java.lang.String> keySet,private java.util.Locale locale,private java.lang.String name,protected java.util.ResourceBundle parent,private static final ReferenceQueue<java.lang.Object> referenceQueue