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.
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
Example code/unit test
If I find the time, I'll provide them later.