Неожиданно заметил, что при генерировании счетов (не создании) в логах сыпятся NullPointerException:
Код:
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - java.lang.NullPointerException
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.bean.PositionValue.setPosition(PositionValue.java:54)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.bean.BillUtil.getPositionList(BillUtil.java:810)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.bean.TemplateBillManager.getTemplatePositions(TemplateBillManager.java:297)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.bean.TemplateBillManager.getTemplatePayBillList(TemplateBillManager.java:202)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.bean.TemplateBillManager.getTemplatePayBillList(TemplateBillManager.java:59)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.bill.action.ActionGetTemplateBillList.doAction(ActionGetTemplateBillList.java:95)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.Executer.doModule(Unknown Source)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.Executer$1.run(Unknown Source)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at java.security.AccessController.doPrivileged(Native Method)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at javax.security.auth.Subject.doAs(Subject.java:396)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.Executer.doPost(Unknown Source)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
/15:00:43 ERROR ["http-bio-/127.0.0.1-8080"-exec-8] LoggingPrintStream - at java.lang.Thread.run(Thread.java:662)
Исключения сыпятся только на одном типе счетов из шести. В настройках этого типа стоит галка "Позиции независимых субдоговоров", конфигурация соответствующих позиций:
Код:
#
bill.pos.20.title=Расходы на подключение к услуге
bill.pos.20.name=Расходы на подключение к услуге
bill.pos.20.summ=CHARGE($month, 1)
bill.pos.20.qtynums=2
#
bill.pos.25.title=Расходы на диагностику
bill.pos.25.name=Расходы на диагностику
bill.pos.25.summ=CHARGE($month, 3)
bill.pos.25.qtynums=2
#
bill.pos.30.title=Расходы на доп. услуги
bill.pos.30.name=Расходы на доп. услуги
bill.pos.30.summ=CHARGE($month, 4)
bill.pos.30.qtynums=2
#
Количество договоров, на которых установлен данный тип документов - 2, количество субдоговоров (без модуля Bill) - 20 (всего), количество исключений - 22. Подозрительное совпадение. На договорах нет расходов вообще.
После генерации счетов для этих договоров в счетах совсем нет позиций, даже с нулевыми суммами, тогда как при генерации счетов с типом документа, в котором нет галки "Позиции независимых субдоговоров", в счёте перечислены все позиции с нулевыми суммами.
Сказать, появились ли данные проблемы давно или после последнего обновления не могу, т. к. в логи не смотрел, потому что в клиенте ошибок не выскакивало и всё, вроде как, работало.