Export to SVG resulting in stack overflow
When having an SBML with several species and reactions sharing position, export to SVG results in stack overflow. [BIOMD0000000001_url_sbo-cc_0--from--R-MMU-70326-Glucose_metabolism-Mus_musculus_fixed-cc1-tmp_order_1-tgt-ddup_False_tmp-ddup_False.xml](/uploads/bafb7a5b0304bcc0d8a3e588dae524eb/BIOMD0000000001_url_sbo-cc_0--from--R-MMU-70326-Glucose_metabolism-Mus_musculus_fixed-cc1-tmp_order_1-tgt-ddup_False_tmp-ddup_False.xml) [BIOMD0000000001_url_sbo-cc_0--from--R-MMU-70326-Glucose_metabolism-Mus_musculus_fixed-cc1-tmp_order_1-tgt-ddup_False_tmp-ddup_False.pdf](/uploads/4af755fa5e3f242f0b4132f8b6584079/BIOMD0000000001_url_sbo-cc_0--from--R-MMU-70326-Glucose_metabolism-Mus_musculus_fixed-cc1-tmp_order_1-tgt-ddup_False_tmp-ddup_False.pdf) ``` rva_1 | 2019-02-19 07:34:51,464 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,465 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,466 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,467 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,468 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,468 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,469 ERROR [http-apr-8080-exec-10] (ArrowTransformation.java:353) - Cannot draw arrow segment with length equal to 0.0 minerva_1 | 2019-02-19 07:34:51,892 ERROR [http-apr-8080-exec-10] (BaseController.java:47) - org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError minerva_1 | org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError minerva_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982) minerva_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) minerva_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) minerva_1 | at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) minerva_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) minerva_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) minerva_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at lcsb.mapviewer.web.bean.utils.JsfAjaxAccessControlAllowFilter.doFilter(JsfAjaxAccessControlAllowFilter.java:37) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at lcsb.mapviewer.web.bean.utils.XFrameAccessControlFilter.doFilter(XFrameAccessControlFilter.java:54) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at lcsb.mapviewer.web.bean.utils.CssContentTypeFilter.doFilter(CssContentTypeFilter.java:45) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317) minerva_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) minerva_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:84) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) minerva_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) minerva_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) minerva_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) minerva_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) minerva_1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) minerva_1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) minerva_1 | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347) minerva_1 | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) minerva_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) minerva_1 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) minerva_1 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) minerva_1 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494) minerva_1 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) minerva_1 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) minerva_1 | at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025) minerva_1 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) minerva_1 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) minerva_1 | at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137) minerva_1 | at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) minerva_1 | at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2511) minerva_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) minerva_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) minerva_1 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) minerva_1 | at java.lang.Thread.run(Thread.java:748) minerva_1 | Caused by: java.lang.StackOverflowError minerva_1 | at sun.font.AttributeValues.get(AttributeValues.java:301) minerva_1 | at sun.font.AttributeValues.toMap(AttributeValues.java:371) minerva_1 | at sun.font.AttributeMap.delegate(AttributeMap.java:85) minerva_1 | at sun.font.AttributeMap.entrySet(AttributeMap.java:66) minerva_1 | at java.util.AbstractMap.get(AbstractMap.java:176) minerva_1 | at org.apache.batik.svggen.SVGFont.weightToSVG(SVGFont.java:457) minerva_1 | at org.apache.batik.svggen.SVGFont.toSVG(SVGFont.java:239) minerva_1 | at org.apache.batik.svggen.SVGFont.toSVG(SVGFont.java:221) minerva_1 | at org.apache.batik.svggen.SVGGraphicContextConverter.toSVG(SVGGraphicContextConverter.java:101) minerva_1 | at org.apache.batik.svggen.DOMGroupManager.addElement(DOMGroupManager.java:167) minerva_1 | at org.apache.batik.svggen.SVGGraphics2D.drawString(SVGGraphics2D.java:1204) minerva_1 | at org.apache.batik.ext.awt.g2d.AbstractGraphics2D.drawString(AbstractGraphics2D.java:608) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.SpeciesConverter.drawText(SpeciesConverter.java:312) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.SpeciesConverter.drawText(SpeciesConverter.java:227) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.ComplexConverter.drawText(ComplexConverter.java:149) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.ComplexConverter.draw(ComplexConverter.java:141) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.ComplexConverter.draw(ComplexConverter.java:30) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.SpeciesConverter.draw(SpeciesConverter.java:501) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.element.species.SpeciesConverter.draw(SpeciesConverter.java:51) minerva_1 | at lcsb.mapviewer.converter.graphics.bioEntity.BioEntityConverterImpl.draw(BioEntityConverterImpl.java:195) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:847) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:861) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:861) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:861) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:861) minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.drawSpecies(AbstractImageGenerator.java:861) ```
issue