Skip to content

Commit

Permalink
fix: corrected cache invalidation for #2902
Browse files Browse the repository at this point in the history
  • Loading branch information
U117293 authored and U117293 committed Nov 14, 2024
1 parent 6a46eea commit e65d253
Showing 1 changed file with 14 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -249,32 +249,32 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
int docStringTypeDefinitionsHashCodeNew = docStringTypeDefinitions.hashCode();
int stepDefinitionsHashCodeNew = stepDefinitions.hashCode();
boolean firstTime = stepTypeRegistry == null;
boolean languageChanged = firstTime || !locale.equals(this.locale);
boolean languageChanged = !locale.equals(this.locale);
boolean parameterTypesDefinitionsChanged = parameterTypeDefinitionsHashCode != parameterTypeDefinitionsHashCodeNew
|| parameterTypeDefinitionsHashCode == 0;
boolean docStringTypeDefinitionsChanged = docStringTypeDefinitionsHashCode != docStringTypeDefinitionsHashCodeNew
||
docStringTypeDefinitionsHashCode == 0;
|| docStringTypeDefinitionsHashCode == 0;
boolean dataTableTypeDefinitionsChanged = dataTableTypeDefinitionsHashCode != dataTableTypeDefinitionsHashCodeNew
||
dataTableTypeDefinitionsHashCode == 0;
|| dataTableTypeDefinitionsHashCode == 0;
boolean stepDefinitionsChanged = stepDefinitionsHashCodeNew != stepDefinitionsHashCode
|| stepDefinitionsHashCode == 0;
if (firstTime || languageChanged ||
parameterTypesDefinitionsChanged || stepDefinitionsChanged ||
dataTableTypeDefinitionsChanged || docStringTypeDefinitionsChanged) {
parameterTypesDefinitionsChanged || dataTableTypeDefinitionsChanged ||
docStringTypeDefinitionsChanged || stepDefinitionsChanged) {
// conditions changed => invalidate the glue cache
this.locale = locale;
stepTypeRegistry = new StepTypeRegistry(locale);
stepExpressionFactory = new StepExpressionFactory(stepTypeRegistry, bus);
parameterTypesDefinitionsChanged = true;
stepDefinitionsChanged = true;
dataTableTypeDefinitionsChanged = true;
docStringTypeDefinitionsChanged = true;
stepDefinitionsChanged = true;
parameterTypeDefinitionsHashCode = parameterTypeDefinitionsHashCodeNew;
dataTableTypeDefinitionsHashCode = dataTableTypeDefinitionsHashCodeNew;
docStringTypeDefinitionsHashCode = docStringTypeDefinitionsHashCodeNew;
stepDefinitionsHashCode = stepDefinitionsHashCodeNew;
stepDefinitionsByPattern.clear();
stepPatternByStepText.clear();
}

// TODO: separate prepared and unprepared glue into different classes
Expand Down Expand Up @@ -363,7 +363,12 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
throw new DuplicateStepDefinitionException(previous, stepDefinition);
}
stepDefinitionsByPattern.put(coreStepDefinition.getExpression().getSource(), coreStepDefinition);
emitStepDefined(coreStepDefinition); // FIXME if step definition are cached, the StepDefinedEvent is not emitted anymore, so io.cucumber.core.runtime.RuntimeTest#generates_events_for_glue_and_scenario_scoped_glue fails
emitStepDefined(coreStepDefinition); // FIXME if step definition
// are cached, the
// StepDefinedEvent is not
// emitted anymore, so
// io.cucumber.core.runtime.RuntimeTest#generates_events_for_glue_and_scenario_scoped_glue
// fails
});
}

Expand Down

0 comments on commit e65d253

Please sign in to comment.