Skip to content

IllegalStateException thrown at CSL.makeBibliography on invalid data field #270

@gallardo

Description

@gallardo

Describe the bug

Rendering of publication list breaks with "IllegalStateException"

Which version of citeproc-java are you using?

3.3.0

Expected behavior

Ideally the list of items with invalid fields ignored.
CSL.makeBibliography should be resilient against invalid CSLItemData fields. A hint about what Item is invalid would be great, so the invalid input can be corrected.

Actual behavior

The mentioned exception is thrown.

CSL input

If I find the time, I'll provide it later. (I have to find it: The failure is reported in a production system and I don't have yet the raw input data).

Used style and locale

I have tested with "apa7" and "ieee", but I think that the style is irrelevant.

Rendered output/Screenshots

Caused by: java.lang.IllegalStateException: Elements in date range must have the same length
	at de.undercouch.citeproc.csl.internal.rendering.SDate.renderInternal(SDate.java:132) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SDate.render(SDate.java:79) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.SRenderingElementContainerElement.lambda$render$0(SRenderingElementContainerElement.java:21) ~[citeproc-java-3.3.0.jar:?]
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
	at de.undercouch.citeproc.csl.internal.SRenderingElementContainerElement.render(SRenderingElementContainerElement.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SText.renderInternal(SText.java:161) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.TextCase.accept(TextCase.java:33) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.TextCase.accept(TextCase.java:19) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Quotes.accept(Quotes.java:43) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Quotes.accept(Quotes.java:16) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SText.render(SText.java:67) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.renderInternal(SGroup.java:51) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:64) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Display.accept(Display.java:20) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SGroup.render(SGroup.java:40) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.SLayout.renderInternal(SLayout.java:42) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:41) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Affixes.accept(Affixes.java:17) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.SLayout.render(SLayout.java:31) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SNameInheritableAttributes.accept(SNameInheritableAttributes.java:226) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.rendering.SNameInheritableAttributes.accept(SNameInheritableAttributes.java:16) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.behavior.Behavior.lambda$wrap$0(Behavior.java:21) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.csl.internal.SBibliography.render(SBibliography.java:70) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.CSL.makeBibliography(CSL.java:1033) ~[citeproc-java-3.3.0.jar:?]
	at de.undercouch.citeproc.CSL.makeBibliography(CSL.java:919) ~[citeproc-java-3.3.0.jar:?]

Example code/unit test

If I find the time, I'll provide them later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions