diff --git a/packages/quicktype-core/src/language/Java/DateTimeProvider.ts b/packages/quicktype-core/src/language/Java/DateTimeProvider.ts index 2535fcdfac..ffd2e1b866 100644 --- a/packages/quicktype-core/src/language/Java/DateTimeProvider.ts +++ b/packages/quicktype-core/src/language/Java/DateTimeProvider.ts @@ -272,7 +272,9 @@ export class JavaLegacyDateTimeProvider extends JavaDateTimeProvider { }); }, ); - this._renderer.emitLine("return null;"); + this._renderer.emitLine( + 'throw new IllegalArgumentException("Unparseable date: " + str);', + ); }, ); diff --git a/test/languages.ts b/test/languages.ts index 8f534c31d2..8369f5a350 100644 --- a/test/languages.ts +++ b/test/languages.ts @@ -246,9 +246,15 @@ export const JavaLanguage: Language = { skipMiscJSON: false, skipSchema: ["optional-property.schema"], rendererOptions: {}, - // The default is array-type=list; this keeps the T[] code path - // covered. - quickTestRendererOptions: [{ "array-type": "array" }], + quickTestRendererOptions: [ + // The default is array-type=list; this keeps the T[] code path + // covered. + { "array-type": "array" }, + // CI runs schema-java, not schema-java-datetime-legacy: this runs + // the legacy provider's date and time parsing, including the + // expected-failure sample. + ["optional-date-time.schema", { "datetime-provider": "legacy" }], + ], sourceFiles: ["src/language/Java/index.ts"], };