forum.bitel.ru http://forum.bitel.ru/ |
|
[7.0] onAccountingStart : newserv.getChildren() is null http://forum.bitel.ru/viewtopic.php?f=44&t=13225 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 06 фев 2019, 11:04 ] |
Заголовок сообщения: | [7.0] onAccountingStart : newserv.getChildren() is null |
Сервер: вер. 7.0.1404 / 07.08.2018 19:50:33 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_144 inet: вер. 7.0.928 / 07.08.2018 19:50:48 Есть давно написанный собственный ServiceActivator. В нём на события serviceCreate/serviceModify/serviceCancel и т.д. выполняются некие действия - всё отлично работает Недавно добавил те же действия на OnAccountingStart и стал получать NPE при попытке перебрать все дочерние сервисы сервиса. Т.е. в onAccountingStart(ServiceActivatorEvent e): e.getNewInetServ().getChildren() == null Хотя в serviceModify, например, это не так. При этом дочерние сервисы в реальности есть. Но даже когда их нет, там не null, а пустой список. Можете их тоже прописать для onAccountingStart()? Сейчас пока видимо придётся самому заполнять из InetServRuntimeMap.listChildren |
Автор: | Amir [ 06 фев 2019, 13:25 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Выложим обновление на этой неделе. |
Автор: | Cromeshnic [ 07 фев 2019, 07:37 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Спасибо! Бтв, стал сам получать список из кэша, а он иногда получается пустой, хотя в базе есть дочерние: Код: children = Utils.maskNull(this.access.inetServRuntimeMap.listChildren(serv.getId())).stream().map(InetServRuntime::getInetServ).collect(Collectors.toList()) Придётся пока из базы дёргать видимо. |
Автор: | Amir [ 07 фев 2019, 15:04 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Возникает для только что добавленных сервисов? |
Автор: | Cromeshnic [ 08 фев 2019, 08:34 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Amir писал(а): Возникает для только что добавленных сервисов? Нет, все - на приостановленных и закрытых договорах (статусы 1,3,4). Речь про childrenRuntimes is null. (пишу в дебаге в логи, собрал статистику за полчаса) |
Автор: | Amir [ 08 фев 2019, 14:25 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
У них deviceId совпадает с deviceId родительского сервиса? |
Автор: | Amir [ 08 фев 2019, 14:48 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
По коду вроде бы единственная ситауция, когда не будет грузить в childrenRuntimes - если deviceId 0 или такого deviceId нет в поддереве. Сам биллинг при добавлении дочернего сервиса проставляет ему deviceId от родительского. |
Автор: | Cromeshnic [ 08 фев 2019, 15:38 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Да, deviceId от другого устройства был почему-то. Пересохранил - исправилось. На том же договоре есть закрытый сервис на другом устройстве с таким же дочерним. Т.е. клиента в какой-то момент перенесли с одного устройство на другое: на родительском девайс поменялся, а на дочернем - нет. Щас некогда смотреть, как это делалось (руками/скриптом), потом может гляну. |
Автор: | Amir [ 11 фев 2019, 17:04 ] |
Заголовок сообщения: | Re: [7.0] onAccountingStart : newserv.getChildren() is null |
Да, при смене устройства на сервисе у дочерних сервисов devceId оставался старый. Выложим исправление сегодня-завтра |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |