shtrih-m / javapos_shtrih

Реализация JavaPOS драйвера принтера фискального регистратора для устройств Штрих-М
http://www.shtrih-m.ru
MIT License
33 stars 16 forks source link

Exception при закрытии чека #83

Open ViartX opened 5 years ago

ViartX commented 5 years ago

При закрытии чека возникает следующая ошибка, при этом сам чек распечатывается без ошибок:

2019-05-15 08:54:30,378 [pool-1-thread-11] ERROR (CompositeLogger.java:46) - IOException: java.io.IOException: Bad file descriptor in nativeavailable at gnu.io.RXTXPort.nativeavailable(Native Method) at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1568) at com.shtrih.fiscalprinter.port.SerialPrinterPort.doReadByte(SerialPrinterPort.java:163) at com.shtrih.fiscalprinter.port.SerialPrinterPort.readByte(SerialPrinterPort.java:147) at com.shtrih.fiscalprinter.port.CancellablePrinterPort.readByte(CancellablePrinterPort.java:45) at com.shtrih.fiscalprinter.PrinterProtocol_1.portReadByte(PrinterProtocol_1.java:64) at com.shtrih.fiscalprinter.PrinterProtocol_1.readAnswer(PrinterProtocol_1.java:116) at com.shtrih.fiscalprinter.PrinterProtocol_1.send(PrinterProtocol_1.java:211) at com.shtrih.fiscalprinter.PrinterProtocol_1.sendCommand(PrinterProtocol_1.java:234) at com.shtrih.fiscalprinter.PrinterProtocol_1.sendCommand(PrinterProtocol_1.java:290) at com.shtrih.fiscalprinter.PrinterProtocol_1.send(PrinterProtocol_1.java:403) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.deviceExecute(SMFiscalPrinterImpl.java:185) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.executeCommand(SMFiscalPrinterImpl.java:270) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.execute(SMFiscalPrinterImpl.java:236) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.readShortStatus(SMFiscalPrinterImpl.java:480) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.readShortPrinterStatus(SMFiscalPrinterImpl.java:1703) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.readPrinterStatus(SMFiscalPrinterImpl.java:1724) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.waitForPrinting(SMFiscalPrinterImpl.java:1470) at com.shtrih.jpos.fiscalprinter.FiscalPrinterImpl.afterCommand(FiscalPrinterImpl.java:594) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.afterCommand(SMFiscalPrinterImpl.java:219) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.deviceExecute(SMFiscalPrinterImpl.java:190) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.executeCommand(SMFiscalPrinterImpl.java:270) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.execute(SMFiscalPrinterImpl.java:236) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.printStringFont(SMFiscalPrinterImpl.java:544) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.printLine(SMFiscalPrinterImpl.java:561) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.doPrintText(SMFiscalPrinterImpl.java:2282) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.printText(SMFiscalPrinterImpl.java:2260) at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.printText(SMFiscalPrinterImpl.java:2249) at com.shtrih.jpos.fiscalprinter.receipt.FSSalesReceipt.endFiscalReceipt(FSSalesReceipt.java:437) at com.shtrih.jpos.fiscalprinter.FiscalPrinterImpl.endFiscalReceipt(FiscalPrinterImpl.java:3006) at com.shtrih.jpos.fiscalprinter.FiscalPrinterService.endFiscalReceipt(FiscalPrinterService.java:1531) at jpos.FiscalPrinter.endFiscalReceipt(Unknown Source) at com.shtrih.fiscalprinter.ShtrihFiscalPrinter113.endFiscalReceipt(ShtrihFiscalPrinter113.java:707) at com.intersystems.ReceiptTest.printReceipt(ReceiptTest.java:260) at com.intersystems.ReceiptTest.main(ReceiptTest.java:423) at com.intersystems.ReceiptTestCallable.call(ReceiptTestCallable.java:18) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Очевидно, что происходит она "глубоко" в недрах endFiscalReciept. Можете ли подсказать, что может быть причиной?

nyxiscoo1 commented 5 years ago

Добрый день. Происходит она глубже JPOS, на уровне обращения к COM-порту, я могу предположить, что во время печати USB устройство было отвалилось и стал невалидным дескриптор.