AEM 6.3, CommandLineProcess: failed to execute command | Community
Skip to main content
jeroend42683933
Level 2
November 29, 2017
Question

AEM 6.3, CommandLineProcess: failed to execute command

  • November 29, 2017
  • 2 replies
  • 1741 views

I am trying to create renditions for a gif file using Gifsicle: Command-Line Animated GIFs  When I run the command in my terminal its works but when ran from inside the workflow (still on my local machine) it fails:

Command (in workflow):

/usr/local/Cellar/gifsicle/1.90/bin/gifsicle ${filename} --resize 1680x1680 > cq5dam.web.1680.1680.gif

error.log:

*ERROR* [JobHandler: /etc/workflow/instances/server1/2017-11-29/update_asset_3:/content/dam/1000rendition/testgif.gif/jcr:content/renditions/original]

com.day.cq.dam.core.process.CommandLineProcess execute: failed to execute command

[[/usr/local/Cellar/gifsicle/1.90/bin/gifsicle, testgif.gif, --resize, 1680x1680, >, cq5dam.web.1680.1680.gif]]  for asset [/content/dam/1000rendition/testgif.gif]:

org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)

at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)

at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:153)

at com.day.cq.dam.core.process.CommandLineProcess$2.run(CommandLineProcess.java:276)

at com.day.cq.dam.core.impl.jmx.AssetUpdateMonitorImpl$UpdateStep.checkAndRun(AssetUpdateMonitorImpl.java:978)

at com.day.cq.dam.core.process.CommandLineProcess.execute(CommandLineProcess.java:194)

at com.day.cq.workflow.compatibility.CQWorkflowProcessRunner.execute(CQWorkflowProcessRunner.java:93)

at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:189)

at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:258)

at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:500)

at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:291)

at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:58)

at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:227)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

I have no idea why this is failing, the logging is not really helping. All help is appreciated, thanks in advance!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

Level 4
December 5, 2017

Apparently  ` > cq5dam.web.1680.1680.gif` is not allowed as part of the command as discussed here: https://stackoverflow.com/questions/43120035/processbuilder-failing-when-calling-a-system-command-where-runtime-exec-works. You can fix it by setting a redirectOutput on the builder but of course this is deeply nested into the workflow and is not easily changed.

Level 4
December 5, 2017

I am now able to create renditions using gifsicle using following commands in my step:

cp ${filename} cq5dam.web.1680.1680.gif

gifsicle --batch cq5dam.web.1680.1680.gif --resize 1680x1680

cp ${filename} cq5dam.web.1024.1024.gif

gifsicle --batch cq5dam.web.1024.1024.gif --resize 1024x1024

cp ${filename} cq5dam.web.600.600.gif

gifsicle --batch cq5dam.web.600.600.gif --resize 600x600