vsch / flexmark-java

CommonMark/Markdown Java parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX conversion modules.
BSD 2-Clause "Simplified" License
2.21k stars 260 forks source link

ArrayIndexOutOfBoundsException: 0 at MarkdownTable.finalizeTable(MarkdownTable.java:747) #609

Open liminglu8899 opened 2 months ago

liminglu8899 commented 2 months ago

ArrayIndexOutOfBoundsException - at com.vladsch.flexmark.util.format.MarkdownTable.finalizeTable(MarkdownTable.java:747)

Please provide as much information about where the bug is located or what you were using:

FlexmarkHtmlConverter to convert HTML content

To Reproduce

If you can please provide sample code which exhibits the issue. This is always best because it incorporates a testable morsel which includes all relevant information.

String htmlContent = new String(fileContent, StandardCharsets.UTF_8);
            String md = FlexmarkHtmlConverter.builder().build().convert(htmlContent);

Or provide a link to a file: https://www.sec.gov/ix?doc=/Archives/edgar/data/0000067088/000119312521211223/d137472d20f.htm

  1. Options used to configure the parser, renderer, formatter, etc. Please provide concise code when you can. com.vladsch.flexmark flexmark-all 0.62.2

    Expected behavior A clear and concise description of what you expected to happen with sample output that would be desired, where it makes sense.

Resulting Output It is best to provide one of the following (in decreasing order of value):

Additional context Add any other context about the problem here. Stack Trace: java.lang.ArrayIndexOutOfBoundsException: 0 at com.vladsch.flexmark.util.format.MarkdownTable.finalizeTable(MarkdownTable.java:747) at com.vladsch.flexmark.html2md.converter.internal.HtmlConverterCoreNodeRenderer.processTable(HtmlConverterCoreNodeRenderer.java:1134) at com.vladsch.flexmark.html2md.converter.HtmlNodeRendererHandler.render(HtmlNodeRendererHandler.java:19) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderNode(FlexmarkHtmlConverter.java:1116) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.render(FlexmarkHtmlConverter.java:1031) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.processHtmlTree(FlexmarkHtmlConverter.java:1688) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderChildren(FlexmarkHtmlConverter.java:1127) at com.vladsch.flexmark.html2md.converter.internal.HtmlConverterCoreNodeRenderer.processDiv(HtmlConverterCoreNodeRenderer.java:537) at com.vladsch.flexmark.html2md.converter.HtmlNodeRendererHandler.render(HtmlNodeRendererHandler.java:19) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderNode(FlexmarkHtmlConverter.java:1116) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.render(FlexmarkHtmlConverter.java:1031) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.processHtmlTree(FlexmarkHtmlConverter.java:1688) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderChildren(FlexmarkHtmlConverter.java:1127) at com.vladsch.flexmark.html2md.converter.internal.HtmlConverterCoreNodeRenderer.processDiv(HtmlConverterCoreNodeRenderer.java:537) at com.vladsch.flexmark.html2md.converter.HtmlNodeRendererHandler.render(HtmlNodeRendererHandler.java:19) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderNode(FlexmarkHtmlConverter.java:1116) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.render(FlexmarkHtmlConverter.java:1031) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.processHtmlTree(FlexmarkHtmlConverter.java:1688) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.processUnwrapped(FlexmarkHtmlConverter.java:1381) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.processUnwrapped(FlexmarkHtmlConverter.java:1376) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.processDefault(FlexmarkHtmlConverter.java:1719) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderDefault(FlexmarkHtmlConverter.java:1524) at com.vladsch.flexmark.html2md.converter.internal.HtmlConverterCoreNodeRenderer.processDefault(HtmlConverterCoreNodeRenderer.java:251) at com.vladsch.flexmark.html2md.converter.HtmlNodeRendererHandler.render(HtmlNodeRendererHandler.java:19) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderNode(FlexmarkHtmlConverter.java:1116) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.render(FlexmarkHtmlConverter.java:1031) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.processHtmlTree(FlexmarkHtmlConverter.java:1688) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.renderNode(FlexmarkHtmlConverter.java:1087) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter$MainHtmlConverter.render(FlexmarkHtmlConverter.java:1031) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.convert(FlexmarkHtmlConverter.java:361) at com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter.convert(FlexmarkHtmlConverter.java:340) at com.equilar.insightapi.service.ERICServiceImpl.spiltFileContentToChunks(ERICServiceImpl.java:879) at com.equilar.insightapi.service.ERICServiceImpl.processDocumentsForIndexing(ERICServiceImpl.java:170) at com.equilar.insightapi.web.ERICController.documentIngestPipeline(ERICController.java:124) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:280) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.equilar.loggingfilter.LoggingFilter.doFilterInternal(LoggingFilter.java:41) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration$MetricsFilter.doFilterInternal(MetricFilterAutoConfiguration.java:90) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:109) at org.springframework.boot.context.web.ErrorPageFilter.access$000(ErrorPageFilter.java:59) at org.springframework.boot.context.web.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:165) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:451) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1201) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654) at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2468) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)"