MergeMultiPdfs gives error

0
I am using MergeMultiplePdfs to make one PDF of a list of pre-generated (temporary) file documents. This function works fine in a local environment, but not on the application server. The application runs on premise, on a Windows Azure server. When using the Java action 'MergeMultiplePdfs' in the microflow, I get an error in the browser and the following error in the application log: com.mendix.modules.microflowengine.MicroflowException: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: java.lang.RuntimeException: LocalFileSystemStore:: File does not exist: Some(529) at Dossier.Offer_Create (JavaAction : 'MergeMultiplePdfs') Advanced stacktrace: at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:144) Caused by: com.mendix.core.CoreException: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: java.lang.RuntimeException: LocalFileSystemStore:: File does not exist: Some(529) at com.mendix.core.component.InternalCore.execute(InternalCore.java:237) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: java.lang.RuntimeException: LocalFileSystemStore:: File does not exist: Some(529) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:202) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: java.lang.RuntimeException: LocalFileSystemStore:: File does not exist: Some(529) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Caused by: java.lang.RuntimeException: LocalFileSystemStore:: File does not exist: Some(529) at com.mendix.storage.localfilesystem.internal.LocalFileSystemStore.com$mendix$storage$localfilesystem$internal$LocalFileSystemStore$$getFileDocumentAsFile(LocalFileSystemStore.scala:153) at com.mendix.storage.localfilesystem.internal.LocalFileSystemStore$$anonfun$1.apply(LocalFileSystemStore.scala:132) at com.mendix.storage.localfilesystem.internal.LocalFileSystemStore$$anonfun$1.apply(LocalFileSystemStore.scala:131) at scala.util.Try$.apply(Try.scala:191) at com.mendix.storage.localfilesystem.internal.LocalFileSystemStore.retrieve(LocalFileSystemStore.scala:131) at com.mendix.filedocumentprocessor.internal.FileDocumentProcessorImpl.getFileDocument(FileDocumentProcessorImpl.java:59) at com.mendix.core.component.InternalCore.getFileDocumentContent(InternalCore.java:1661) at com.mendix.core.Core.getFileDocumentContent(Core.java:1048) at communitycommons.Misc.mergePDF(Misc.java:588) at communitycommons.actions.MergeMultiplePdfs.executeAction(MergeMultiplePdfs.java:45) at communitycommons.actions.MergeMultiplePdfs.executeAction(MergeMultiplePdfs.java:20) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:261) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:249) at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:192) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:198) at com.mendix.core.component.InternalCore.execute(InternalCore.java:229) at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:52) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:44) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:261) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:249) at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:192) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:198) at com.mendix.core.component.InternalCore.execute(InternalCore.java:229) at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:135) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:300) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:293) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:293) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:126) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:128) at scala.util.Try$.apply(Try.scala:191) at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:122) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:119) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) Does anyone know what causes this problem and what we can do to solve it.
asked
1 answers
0

Seems that the content of the file can't be found. The Mendix object is available but the file is not to be found on the filesystem. You could try and add a function to test this. Add a java action that has one of the files you try to merge and perform an action like below in the java action:

 try{
InputStream content = Core.getFileDocumentContent(context, file.getMendixObject());
}
catch (IOException e) {
            throw new RuntimeException("Failed to retrive file" + e.getMessage(), e);

If this fails the document is not available on the file system, could be that the objects were moved with a db restore, but the files were not moved to the server?

answered