Skip to content

Commit a7885a0

Browse files
authored
Merge pull request #1884 from OreOreDa/master
callSingle update
2 parents 4bbdf20 + a672a9e commit a7885a0

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

karate-core/src/main/java/com/intuit/karate/core/ScenarioBridge.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -182,21 +182,21 @@ public Object callSingle(String fileName) throws Exception {
182182
public Object callSingle(String fileName, Value arg) throws Exception {
183183
ScenarioEngine engine = getEngine();
184184
final Map<String, Object> CACHE = engine.runtime.featureRuntime.suite.callSingleCache;
185-
if (CACHE.containsKey(fileName)) {
185+
int minutes = engine.getConfig().getCallSingleCacheMinutes();
186+
if ((minutes == 0) && CACHE.containsKey(fileName)) {
186187
engine.logger.trace("callSingle cache hit: {}", fileName);
187188
return callSingleResult(engine, CACHE.get(fileName));
188189
}
189190
long startTime = System.currentTimeMillis();
190191
engine.logger.trace("callSingle waiting for lock: {}", fileName);
191192
synchronized (CACHE) { // lock
192-
if (CACHE.containsKey(fileName)) { // retry
193+
if ((minutes == 0) && CACHE.containsKey(fileName)) { // retry
193194
long endTime = System.currentTimeMillis() - startTime;
194195
engine.logger.warn("this thread waited {} milliseconds for callSingle lock: {}", endTime, fileName);
195196
return callSingleResult(engine, CACHE.get(fileName));
196197
}
197198
// this thread is the 'winner'
198199
engine.logger.info(">> lock acquired, begin callSingle: {}", fileName);
199-
int minutes = engine.getConfig().getCallSingleCacheMinutes();
200200
Object result = null;
201201
File cacheFile = null;
202202
if (minutes > 0) {

0 commit comments

Comments
 (0)