Author: cziegeler
Date: Mon Sep  2 16:23:29 2013
New Revision: 1519468

URL: http://svn.apache.org/r1519468
Log:
FELIX-4214 : Cache in BundleResources works only for a single metatype 
properties file per bundle

Modified:
    
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/l10n/BundleResources.java

Modified: 
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/l10n/BundleResources.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/l10n/BundleResources.java?rev=1519468&r1=1519467&r2=1519468&view=diff
==============================================================================
--- 
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/l10n/BundleResources.java
 (original)
+++ 
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/l10n/BundleResources.java
 Mon Sep  2 16:23:29 2013
@@ -1,4 +1,4 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -112,10 +112,12 @@ public class BundleResources
             locale = Locale.getDefault().toString();
         }
 
+        final String key = basename + "-" + locale;
+
         // check the cache, if the bundle has not changed
         if ( isUpToDate() )
         {
-            Resources res = ( Resources ) resourcesByLocale.get( locale );
+            Resources res = ( Resources ) resourcesByLocale.get( key );
             if ( res != null )
             {
                 return res;
@@ -132,8 +134,9 @@ public class BundleResources
         List resList = createResourceList( locale );
         for ( Iterator ri = resList.iterator(); ri.hasNext(); )
         {
-            String tmpLocale = ( String ) ri.next();
-            Resources res = ( Resources ) resourcesByLocale.get( tmpLocale );
+            final String tmpLocale = ( String ) ri.next();
+            final String tmpKey = basename + "-" + tmpLocale;
+            Resources res = ( Resources ) resourcesByLocale.get( tmpKey );
             if ( res != null )
             {
                 parentProperties = res.getResources();
@@ -142,13 +145,13 @@ public class BundleResources
             {
                 Properties props = loadProperties( basename, tmpLocale, 
parentProperties );
                 res = new Resources( tmpLocale, props );
-                resourcesByLocale.put( tmpLocale, res );
+                resourcesByLocale.put( tmpKey, res );
                 parentProperties = props;
             }
         }
 
         // just return from the cache again
-        return ( Resources ) resourcesByLocale.get( locale );
+        return ( Resources ) resourcesByLocale.get( key );
     }
 
 


Reply via email to