BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 01:01

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 06 фев 2019, 11:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Сервер: вер. 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 06 фев 2019, 13:25 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложим обновление на этой неделе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 07 фев 2019, 07:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Спасибо!

Бтв, стал сам получать список из кэша, а он иногда получается пустой, хотя в базе есть дочерние:

Код:
children = Utils.maskNull(this.access.inetServRuntimeMap.listChildren(serv.getId())).stream().map(InetServRuntime::getInetServ).collect(Collectors.toList())


Придётся пока из базы дёргать видимо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 07 фев 2019, 15:04 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Возникает для только что добавленных сервисов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 08 фев 2019, 08:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Amir писал(а):
Возникает для только что добавленных сервисов?

Нет, все - на приостановленных и закрытых договорах (статусы 1,3,4).
Речь про childrenRuntimes is null.

(пишу в дебаге в логи, собрал статистику за полчаса)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 08 фев 2019, 14:25 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
У них deviceId совпадает с deviceId родительского сервиса?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 08 фев 2019, 14:48 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
По коду вроде бы единственная ситауция, когда не будет грузить в childrenRuntimes - если deviceId 0 или такого deviceId нет в поддереве.
Сам биллинг при добавлении дочернего сервиса проставляет ему deviceId от родительского.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 08 фев 2019, 15:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Да, deviceId от другого устройства был почему-то. Пересохранил - исправилось.
На том же договоре есть закрытый сервис на другом устройстве с таким же дочерним.
Т.е. клиента в какой-то момент перенесли с одного устройство на другое: на родительском девайс поменялся, а на дочернем - нет.
Щас некогда смотреть, как это делалось (руками/скриптом), потом может гляну.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] onAccountingStart : newserv.getChildren() is null
СообщениеДобавлено: 11 фев 2019, 17:04 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, при смене устройства на сервисе у дочерних сервисов devceId оставался старый. Выложим исправление сегодня-завтра


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.082s | 37 Queries | GZIP : On ]