Milestone creation issue
SUMMARY
UPDATE:
Issue comes when Title contains track changes AND special characters.
_______________________________
Generate milestone failing :
16:06:28.048 leos [[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'] [] ERROR e.e.e.l.s.a.e.ResponseExceptionHandler - Unexpected error occurred :eu.europa.ec.leos.services.support.XercesUtils.createXercesDocument(XercesUtils.java:109) org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) at eu.europa.ec.leos.services.support.XercesUtils.createXercesDocument(XercesUtils.java:105) ... 92 common frames omitted Wrapped by: java.lang.IllegalStateException: Wrong XML Structure! at eu.europa.ec.leos.services.support.XercesUtils.createXercesDocument(XercesUtils.java:109) at eu.europa.ec.leos.services.support.XercesUtils.createNodeFromXmlFragment(XercesUtils.java:127) at eu.europa.ec.leos.services.support.XercesUtils.createNodeFromXmlFragment(XercesUtils.java:123) at eu.europa.ec.leos.services.support.XercesUtils.addContentToNode(XercesUtils.java:146) at eu.europa.ec.leos.services.support.XercesUtils.addContentToNode(XercesUtils.java:133) at eu.europa.ec.leos.services.processor.node.XmlNodeProcessorImpl.setValuesInXml(XmlNodeProcessorImpl.java:99) at eu.europa.ec.leos.services.processor.node.XmlNodeProcessorImpl.setValuesInXml(XmlNodeProcessorImpl.java:115) at eu.europa.ec.leos.services.store.LegServiceImpl.addMetadataToProposal(LegServiceImpl.java:362) at eu.europa.ec.leos.services.store.LegServiceImpl.enrichZipWithProposalForClone(LegServiceImpl.java:863) at eu.europa.ec.leos.services.store.LegServiceImpl.createLegPackageForClone(LegServiceImpl.java:1734) at eu.europa.ec.leos.services.milestone.ProposalMilestoneServiceImpl.createLegPackage(ProposalMilestoneServiceImpl.java:63) at eu.europa.ec.leos.services.milestone.AbstractMilestoneService.createMilestone(AbstractMilestoneService.java:56) at eu.europa.ec.leos.services.api.ApiServiceImpl.createMilestone(ApiServiceImpl.java:1044) at eu.europa.ec.leos.services.controllers.LeosApiController.createMilestone(LeosApiController.java:650) at sun.reflect.GeneratedMethodAccessor1057.invoke(Unknown Source) 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:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at weblogic.servlet.internal.StubSecurityHelperServletServiceAction.run(StubSecurityHelper.java:295) at weblogic.servlet.internal.StubSecurityHelperServletServiceAction.run(StubSecurityHelper.java:260) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:353) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at weblogic.websocket.tyrus.TyrusServletFilter.doFilter(TyrusServletFilter.java:274) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:352) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:164) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at eu.europa.ec.leos.api.auth.LeosApiAuthenticationFilter.successfulAuthentication(LeosApiAuthenticationFilter.java:166) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:241) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxyVirtualFilterChain.doFilter(FilterChainProxy.java:361) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:225) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:190) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at weblogic.servlet.internal.WebAppServletContextServletInvocationAction.wrapRun(WebAppServletContext.java:3800) at weblogic.servlet.internal.WebAppServletContextServletInvocationAction.run(WebAppServletContext.java:3766) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344) at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2454) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2302) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2280) at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1739) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1699) at weblogic.servlet.provider.ContainerSupportProviderImplWlsRequestExecutor.run(ContainerSupportProviderImpl.java:272) at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352) at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337) at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57) at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420) at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)
Document is getting corrupted which then prevents any action over the proposal : cannot send for validation, cannot create milestone...
Proposal example: https://webgate.acceptance.ec.europa.eu/decide-drafting/ui/collection/main-cm31fpx3t001r9t007xfn7qc5-en
D-ISC of SG, SJ consulted (ACC), SJ sent the answer: ISC/2024/01621
RELEASE AND BUILD VERSION
Version: 5.2.0-SNAPSHOT | Revision: EdiT Drafting | Date: 2024-10-30 17:05 CET
STEPS TO REPRODUCE
<List of exact steps needed to reproduce the issue - add screenshots if needed to help contextualize>