Meeds-io / meeds

The Meeds Association provides its members with an employee recognition software implementation. The employee recognition software is fueled by the Meeds ERC-20 tokens.
https://meeds.io
GNU Lesser General Public License v3.0
280 stars 8 forks source link

Images in portletIcons, pageTemplate are not correctly loaded when EXO_TOMCAT_UNPACK_WARS=false #2196

Closed rdenarie closed 1 week ago

rdenarie commented 1 week ago

On milestone M22, when using parameter EXO_TOMCAT_UNPACK_WARS=false, there are errors in logs :

2024-06-18 11:12:25,394 | WARN | An error occurred while importing portlet instance NewsListView [i.m.l.s.i.PortletInstanceImportService] java.lang.IllegalStateException: Error while saving Image 'war:/../skin/DefaultSkin/portletIcons/NewsListView.png' as attachment for portlet instance '41' at io.meeds.layout.service.injection.PortletInstanceImportService.saveIllustration(PortletInstanceImportService.java:328) at io.meeds.layout.service.injection.PortletInstanceImportService.importPortletInstance(PortletInstanceImportService.java:231) at io.meeds.layout.service.injection.PortletInstanceImportService.importDescriptor(PortletInstanceImportService.java:193) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at io.meeds.layout.service.injection.PortletInstanceImportService.importPortletInstances_aroundBody0(PortletInstanceImportService.java:141) at io.meeds.layout.service.injection.PortletInstanceImportService$AjcClosure1.run(PortletInstanceImportService.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:171) at io.meeds.common.ContainerTransactionalAspect.around(ContainerTransactionalAspect.java:49) at io.meeds.layout.service.injection.PortletInstanceImportService.importPortletInstances(PortletInstanceImportService.java:124) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) Caused by: java.io.FileNotFoundException: file:/home/romain/exo/exo-working/platform-7.0.0-M22/webapps/content.war*/skin/DefaultSkin/portletIcons/NewsListView.png (Aucun fichier ou dossier de ce type) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.(FileInputStream.java:152) at java.base/java.io.FileInputStream.(FileInputStream.java:106) at org.exoplatform.social.core.attachment.AttachmentServiceImpl.saveAttachment(AttachmentServiceImpl.java:173) at io.meeds.layout.service.injection.PortletInstanceImportService.saveIllustration(PortletInstanceImportService.java:322) ... 26 common frames omitted

2024-06-18 11:12:23,152 | WARN | An error occurred while importing page template analytics [i.m.l.s.i.PageTemplateImportService] java.lang.IllegalStateException: Error while saving Image 'war:/../images/pages/template/analytics.png' as attachment for template '3' at io.meeds.layout.service.injection.PageTemplateImportService.saveIllustration(PageTemplateImportService.java:246) at io.meeds.layout.service.injection.PageTemplateImportService.importPageTemplate(PageTemplateImportService.java:182) at io.meeds.layout.service.injection.PageTemplateImportService.importDescriptor(PageTemplateImportService.java:166) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395) at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:261) at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:261) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at io.meeds.layout.service.injection.PageTemplateImportService.importPageTemplates_aroundBody0(PageTemplateImportService.java:136) at io.meeds.layout.service.injection.PageTemplateImportService$AjcClosure1.run(PageTemplateImportService.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:171) at io.meeds.common.ContainerTransactionalAspect.around(ContainerTransactionalAspect.java:49) at io.meeds.layout.service.injection.PageTemplateImportService.importPageTemplates(PageTemplateImportService.java:114) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) Caused by: java.io.FileNotFoundException: file:/home/romain/exo/exo-working/platform-7.0.0-M22/webapps/sites.war*/images/pages/template/analytics.png (Aucun fichier ou dossier de ce type) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.(FileInputStream.java:152) at java.base/java.io.FileInputStream.(FileInputStream.java:106) at org.exoplatform.social.core.attachment.AttachmentServiceImpl.saveAttachment(AttachmentServiceImpl.java:173) at io.meeds.layout.service.injection.PageTemplateImportService.saveIllustration(PageTemplateImportService.java:240) ... 25 common frames omitted

In this case, when wars are not unpacked, the service does not manage to read png inside wars.