Skip to content

Commit 1414580

Browse files
committed
BroadleafCommerce#935 - Cache the actual resource that was created immediately after bundling. In multi-site edition, other resources that can use a previously created bundle fail because the path name gets generated with the site id of the first creating site.
1 parent aa57818 commit 1414580

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

common/src/main/java/org/broadleafcommerce/common/resource/service/ResourceBundlingServiceImpl.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class ResourceBundlingServiceImpl implements ResourceBundlingService {
9090

9191
private KeyLockManager keyLockManager = KeyLockManagers.newLock();
9292

93-
private ConcurrentHashMap<String, String> createdBundles = new ConcurrentHashMap<String, String>();
93+
private ConcurrentHashMap<String, Resource> createdBundles = new ConcurrentHashMap<String, Resource>();
9494

9595
@Override
9696
public String resolveBundleResourceName(String requestedBundleName, String mappingPrefix, List<String> files) {
@@ -139,8 +139,7 @@ public String resolveBundleResourceName(String requestedBundleName, String mappi
139139

140140
@Override
141141
public Resource resolveBundleResource(String versionedBundleResourceName) {
142-
versionedBundleResourceName = lookupBundlePath(versionedBundleResourceName);
143-
return readBundle(versionedBundleResourceName);
142+
return createdBundles.get(lookupBundlePath(versionedBundleResourceName));
144143
}
145144

146145
@Override
@@ -174,15 +173,15 @@ protected void createBundleIfNeeded(final String versionedBundleName, final List
174173

175174
@Override
176175
public void doInLock() {
177-
Resource bundle = readBundle(versionedBundleName);
178-
if (bundle == null || !bundle.exists()) {
179-
Resource bundleResource = createBundle(versionedBundleName, filePaths, resolverChain, locations);
176+
Resource bundleResource = createdBundles.get(versionedBundleName);
177+
if (bundleResource == null || !bundleResource.exists()) {
178+
bundleResource = createBundle(versionedBundleName, filePaths, resolverChain, locations);
180179
if (bundleResource != null) {
181180
saveBundle(bundleResource);
182181
}
183182
}
184-
185-
createdBundles.put(versionedBundleName, versionedBundleName);
183+
Resource savedResource = readBundle(versionedBundleName);
184+
createdBundles.put(versionedBundleName, savedResource);
186185
}
187186
});
188187
}

0 commit comments

Comments
 (0)