You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Dmitry Volodin (JIRA)" <ji...@apache.org> on 2018/02/05 17:19:00 UTC

[jira] [Comment Edited] (CAMEL-12228) Print command fails in case of multiple copies

    [ https://issues.apache.org/jira/browse/CAMEL-12228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352660#comment-16352660 ] 

Dmitry Volodin edited comment on CAMEL-12228 at 2/5/18 5:18 PM:
----------------------------------------------------------------

Yes, thanks [~rvanderhallen] for reporting. It's a bug, the [PrinterOperations.print|https://github.com/apache/camel/blob/664130ece8e23e137118e974158282d570d169c8/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterOperations.java#L70] creates printing jobs which are equivalent to number of copies with -# num-copies parameters inside.

But we need to decide which strategy to use for fix: pass num of copies in a single job parameter or schedule a set of jobs as copies count with a num-copies=1. And this issue unable to reproduce without real or virtual PDF printer setup. [~davsclaus] what do you think about this?

 


was (Author: dmvolod):
Yes, thanks [~rvanderhallen] for reporting. It's a bug, the [PrinterOperations.print|https://github.com/apache/camel/blob/664130ece8e23e137118e974158282d570d169c8/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterOperations.java#L70] creates printing jobs which are equivalent to number of copies with -# num-copies parameters inside.

But we need to decide which strategy to use for fix: pass num of copies in a single job parameter or schedule a set of jobs as copies count with a single copy parameter. And this issue unable to reproduce without real or virtual PDF printer setup. [~davsclaus] what do you think about this?

 

> Print command fails in case of multiple copies
> ----------------------------------------------
>
>                 Key: CAMEL-12228
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12228
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-printer
>    Affects Versions: 2.18.1, 2.19.0, 2.20.0
>            Reporter: Robin Vanderhallen
>            Assignee: Dmitry Volodin
>            Priority: Major
>
> When the printer component is configured to print multiple copies, two print jobs are created. The first one runs OK, the second one fails.
> {code}
> lpr://localhost/printer?copies=2&mediaSize=ISO_A4&flavor=DocFlavor.INPUT_STREAM
> {code}
> {code}
> org.apache.camel.component.printer.PrinterOperations DEBUG Issuing Job 0 to Printer: printer
> org.apache.camel.component.printer.PrinterOperations DEBUG Issuing Job 1 to Printer: printer
> ERROR ID-47935-1516954952584-8-4
> java.io.IOException: error=1 running: '/usr/bin/lpr' '-Pprinter' '-J file.pdf' '-#2' '-o media=A4 sides=one-sided' '/opt/tomcat/temp/javaprint7376295310894617090'
>                /usr/bin/lpr: No file in print request.
> javax.print.PrintException: java.io.IOException: error=1 running: '/usr/bin/lpr' '-PBriefing' '-J file.pdf' '-#2' '-o media=A4 sides=one-sided' '/opt/tomcat/temp/javaprint7376295310894617090'
>                /usr/bin/lpr: No file in print request.
>        at sun.print.UnixPrintJob$PrinterSpooler.run(UnixPrintJob.java:1017)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at sun.print.UnixPrintJob.print(UnixPrintJob.java:608)
>        at org.apache.camel.component.printer.PrinterOperations.print(PrinterOperations.java:109)
>        at org.apache.camel.component.printer.PrinterOperations.print(PrinterOperations.java:99)
>        at org.apache.camel.component.printer.PrinterProducer.print(PrinterProducer.java:57)
>        at org.apache.camel.component.printer.PrinterProducer.process(PrinterProducer.java:51)
>        at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>        at org.apache.camel.processor.SendDynamicProcessor$1.doInAsyncProducer(SendDynamicProcessor.java:124)
>        at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:436)
>        at org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:119)
>        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
>        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
>        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>        at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
>        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
>        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
>        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
>        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
>        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
>        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>        at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:827)
>        at org.apache.camel.processor.MulticastProcessor.access$200(MulticastProcessor.java:85)
>        at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:320)
>        at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:305)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>        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)
> {code}
> The second job should not be created because the -#2 parameter in the lpr command already schedules the desired number of copies.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)