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 );
}