You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I store the XML content of the X-Invoice inside a string. To create a view copy I apply:
import org.mustangproject.ZUGFeRD.ZUGFeRDVisualizer;
[... lots of code ...]
ZUGFeRDVisualizer mustangVisualizer;
byte[] fileContent;
mustangVisualizer = new ZUGFeRDVisualizer();
try {
fileContent = mustangVisualizer.toPDF(xInvoiceXML);
if (fileContent != null) {
// send fileContent to display
} else {
// log ("Plain PDF, has no X-Invoice inside");
}
catch (Throwable e) { // yes, I am lazy
System.err.println (
e.getClass().getSimpleName() + ": " + e.getMessage()
);
}
[... lots of more code ...]
With the given XML invoice this code produces on the standard error output:
NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "fopInput" is null
I run the program on my IDE and get below exception message and stack trace. I assume the date CSV 2025-04-20;2025-03-21 are two dates 20250420 and 20250321 in the ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime tags.
When I remove one of the ram:SpecifiedTradePaymentTerms tags the visualizer produces a view copy successfully,
without any exceptions.
With other X-Invoices I do get a view copy - with ZUGFeRD PDFs and invoice XMLs.
I don't know the underlying standard, but I think it is allowed to put two ram:SpecifiedTradePaymentTerms tags at that place.
My java version:
openjdk version "22.0.1" 2024-04-16
OpenJDK Runtime Environment (build 22.0.1+8-16)
OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
Is there anything I should do different to get a view copy for X-Invoices which have two ram:SpecifiedTradePaymentTerms tags in the given location?
Thank you so much for clarification!
The exception message:
net.sf.saxon.trans.XPathException: Invalid date "2025-04-20;2025-03-21" (Day must be two digits). Found while atomizing the first argument of fn:normalize-space() in {$content} on line 128
at net.sf.saxon.expr.Atomizer$AtomizerElaborator.lambda$elaborateForPull$0(Atomizer.java:687) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.AtomicSequenceConverter$AtomicSequenceConverterElaborator.lambda$elaborateForPull$0(AtomicSequenceConverter.java:536) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.CardinalityChecker$CardinalityCheckerElaborator.lambda$elaborateForPull$0(CardinalityChecker.java:506) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.PullElaborator.lambda$elaborateForItem$1(PullElaborator.java:54) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.PullElaborator.lambda$elaborateForUnicodeString$3(PullElaborator.java:76) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.functions.NormalizeSpace_1$NormalizeSpaceFnElaborator.lambda$elaborateForBoolean$2(NormalizeSpace_1.java:115) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Choose$ChooseExprElaborator.lambda$elaborateForPush$10(Choose.java:1168) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$3(Block.java:885) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:247) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:515) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.Expression.dispatchTailCall(Expression.java:976) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$1(CallTemplate.java:634) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$4(Block.java:895) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.DocumentInstr$DocumentInstrElaborator.lambda$elaborateForItem$3(DocumentInstr.java:392) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.OptionalItemEvaluator.evaluate(OptionalItemEvaluator.java:41) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.LearningEvaluator.evaluate(LearningEvaluator.java:61) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.WithParam.getSelectValue(WithParam.java:322) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Instruction.assembleParams(Instruction.java:200) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$0(CallTemplate.java:590) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:247) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$1(CallTemplate.java:633) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$4(Block.java:895) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:247) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$1(CallTemplate.java:633) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.DocumentInstr$DocumentInstrElaborator.lambda$elaborateForItem$3(DocumentInstr.java:392) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.OptionalItemEvaluator.evaluate(OptionalItemEvaluator.java:41) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.LearningEvaluator.evaluate(LearningEvaluator.java:61) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.WithParam.getSelectValue(WithParam.java:322) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Instruction.assembleParams(Instruction.java:200) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$0(CallTemplate.java:590) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:247) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$1(CallTemplate.java:633) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$4(Block.java:895) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.FixedElement$FixedElementElaborator.lambda$elaborateForPush$0(FixedElement.java:640) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.DocumentInstr$DocumentInstrElaborator.lambda$elaborateForItem$3(DocumentInstr.java:392) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.OptionalItemEvaluator.evaluate(OptionalItemEvaluator.java:41) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.elab.LearningEvaluator.evaluate(LearningEvaluator.java:61) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.WithParam.getSelectValue(WithParam.java:322) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Instruction.assembleParams(Instruction.java:200) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.CallTemplate$CallTemplateElaborator.lambda$elaborateForPush$1(CallTemplate.java:625) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$4(Block.java:895) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.FixedElement$FixedElementElaborator.lambda$elaborateForPush$0(FixedElement.java:640) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:376) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:587) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:521) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.trans.rules.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:72) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:518) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:684) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:430) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:358) ~[validator-2.16.2-shaded.jar:2.16.2]
at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:75) ~[validator-2.16.2-shaded.jar:2.16.2]
at org.mustangproject.ZUGFeRD.ZUGFeRDVisualizer.applyXSLTToPDF(ZUGFeRDVisualizer.java:432) ~[validator-2.16.2-shaded.jar:2.16.2]
at org.mustangproject.ZUGFeRD.ZUGFeRDVisualizer.toFOP(ZUGFeRDVisualizer.java:250) ~[validator-2.16.2-shaded.jar:2.16.2]
at org.mustangproject.ZUGFeRD.ZUGFeRDVisualizer.toPDF(ZUGFeRDVisualizer.java:293) ~[validator-2.16.2-shaded.jar:2.16.2]
at d.b.z.x.r.s.ValidatorBackend.addViewCopyTo(ValidatorBackend.java:162) ~[classes/:na]
at d.b.z.x.r.c.ValidationController.submitAndReturnAll(ValidationController.java:51) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-6.0.21.jar:6.0.21]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:798) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.0.21.jar:6.0.21]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.0.21.jar:6.0.21]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.24.jar:6.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.0.21.jar:6.0.21]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.24.jar:6.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.0.21.jar:6.0.21]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.21.jar:6.0.21]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.0.21.jar:6.0.21]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.21.jar:6.0.21]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.21.jar:6.0.21]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.21.jar:6.0.21]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
The text was updated successfully, but these errors were encountered:
I am unsuccessfully trying to create a view copy from this X-Invoice (Code shortened to relevant bits):
Note that my XML invoice has got two elements
The X-Invoice validates OK with no messages
I store the XML content of the X-Invoice inside a string. To create a view copy I apply:
With the given XML invoice this code produces on the standard error output:
I run the program on my IDE and get below exception message and stack trace. I assume the date CSV 2025-04-20;2025-03-21 are two dates 20250420 and 20250321 in the ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime tags.
When I remove one of the ram:SpecifiedTradePaymentTerms tags the visualizer produces a view copy successfully,
without any exceptions.
With other X-Invoices I do get a view copy - with ZUGFeRD PDFs and invoice XMLs.
I don't know the underlying standard, but I think it is allowed to put two ram:SpecifiedTradePaymentTerms tags at that place.
My
java
version:My OS:
Is there anything I should do different to get a view copy for X-Invoices which have two ram:SpecifiedTradePaymentTerms tags in the given location?
Thank you so much for clarification!
The exception message:
The text was updated successfully, but these errors were encountered: