@@ -249,32 +249,32 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
249
249
int docStringTypeDefinitionsHashCodeNew = docStringTypeDefinitions .hashCode ();
250
250
int stepDefinitionsHashCodeNew = stepDefinitions .hashCode ();
251
251
boolean firstTime = stepTypeRegistry == null ;
252
- boolean languageChanged = firstTime || !locale .equals (this .locale );
252
+ boolean languageChanged = !locale .equals (this .locale );
253
253
boolean parameterTypesDefinitionsChanged = parameterTypeDefinitionsHashCode != parameterTypeDefinitionsHashCodeNew
254
254
|| parameterTypeDefinitionsHashCode == 0 ;
255
255
boolean docStringTypeDefinitionsChanged = docStringTypeDefinitionsHashCode != docStringTypeDefinitionsHashCodeNew
256
- ||
257
- docStringTypeDefinitionsHashCode == 0 ;
256
+ || docStringTypeDefinitionsHashCode == 0 ;
258
257
boolean dataTableTypeDefinitionsChanged = dataTableTypeDefinitionsHashCode != dataTableTypeDefinitionsHashCodeNew
259
- ||
260
- dataTableTypeDefinitionsHashCode == 0 ;
258
+ || dataTableTypeDefinitionsHashCode == 0 ;
261
259
boolean stepDefinitionsChanged = stepDefinitionsHashCodeNew != stepDefinitionsHashCode
262
260
|| stepDefinitionsHashCode == 0 ;
263
261
if (firstTime || languageChanged ||
264
- parameterTypesDefinitionsChanged || stepDefinitionsChanged ||
265
- dataTableTypeDefinitionsChanged || docStringTypeDefinitionsChanged ) {
262
+ parameterTypesDefinitionsChanged || dataTableTypeDefinitionsChanged ||
263
+ docStringTypeDefinitionsChanged || stepDefinitionsChanged ) {
266
264
// conditions changed => invalidate the glue cache
267
265
this .locale = locale ;
268
266
stepTypeRegistry = new StepTypeRegistry (locale );
269
267
stepExpressionFactory = new StepExpressionFactory (stepTypeRegistry , bus );
270
268
parameterTypesDefinitionsChanged = true ;
271
- stepDefinitionsChanged = true ;
272
269
dataTableTypeDefinitionsChanged = true ;
273
270
docStringTypeDefinitionsChanged = true ;
271
+ stepDefinitionsChanged = true ;
274
272
parameterTypeDefinitionsHashCode = parameterTypeDefinitionsHashCodeNew ;
275
273
dataTableTypeDefinitionsHashCode = dataTableTypeDefinitionsHashCodeNew ;
276
274
docStringTypeDefinitionsHashCode = docStringTypeDefinitionsHashCodeNew ;
277
275
stepDefinitionsHashCode = stepDefinitionsHashCodeNew ;
276
+ stepDefinitionsByPattern .clear ();
277
+ stepPatternByStepText .clear ();
278
278
}
279
279
280
280
// TODO: separate prepared and unprepared glue into different classes
@@ -363,7 +363,12 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
363
363
throw new DuplicateStepDefinitionException (previous , stepDefinition );
364
364
}
365
365
stepDefinitionsByPattern .put (coreStepDefinition .getExpression ().getSource (), coreStepDefinition );
366
- 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
366
+ emitStepDefined (coreStepDefinition ); // FIXME if step definition
367
+ // are cached, the
368
+ // StepDefinedEvent is not
369
+ // emitted anymore, so
370
+ // io.cucumber.core.runtime.RuntimeTest#generates_events_for_glue_and_scenario_scoped_glue
371
+ // fails
367
372
});
368
373
}
369
374
0 commit comments