BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 14:42

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка в ContractTariffOptionDao.list
СообщениеДобавлено: 15 фев 2013, 19:19 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
В событии запроса учётного периода получаю список доступных опций:

Код:
import java.util.*;
import java.sql.Connection;
import ru.bitel.common.sql.*;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.kernel.tariff.option.server.bean.*;
import ru.bitel.bgbilling.server.util.Setup;

public class test_AccountingPeriod2
   extends EventScriptBase
{
   @Override
   public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
      Connection con = connectionSet.getConnection();
      int cid = event.getContractId();
      Date now = new Date();

      boolean needNonActivated = false;
      ContractTariffOptionDao ctom = new ContractTariffOptionDao(con);
      List currentOptionList = ctom.list(cid, now, false, needNonActivated);
   }
}


Если на договоре есть тарифные опции, вылетает ошибка:
Код:
EXCEPTIONS:
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.NullPointerException
   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
   at java.util.concurrent.FutureTask.get(FutureTask.java:91)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:267)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
   at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
   at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:848)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.accountingPeriodActivate(InetServRuntime.java:313)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.accountingPeriodCheck(InetServRuntime.java:401)
   at ru.bitel.bgbilling.modules.inet.accounting.InetConnectionRuntime.setAccountingPeriod(InetConnectionRuntime.java:1239)
   at ru.bitel.bgbilling.modules.inet.accounting.InetConnectionRuntime.splitSession(InetConnectionRuntime.java:1020)
   at ru.bitel.bgbilling.modules.inet.accounting.InetConnectionRuntime.trySplitSession(InetConnectionRuntime.java:919)
   at ru.bitel.bgbilling.modules.inet.accounting.FlowAgentInterface.processFlow(FlowAgentInterface.java:131)
   at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl0(FlowListenerWorker.java:248)
   at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl(FlowListenerWorker.java:141)
   at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorkerNetFlow.processPacket(FlowListenerWorkerNetFlow.java:29)
   at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.runImpl(FlowListenerWorker.java:58)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.Exception: java.lang.NullPointerException
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:200)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:254)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   ... 4 more
Caused by: java.lang.NullPointerException
   at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao.getFromRS(ContractTariffOptionDao.java:209)
   at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao.list(ContractTariffOptionDao.java:82)
   at ru.iks.inet.dyn.tariff_F.myAccountingPeriod_unlimF.onEvent(myAccountingPeriod_unlimF.java:113)
   at ru.iks.inet.dyn.tariff_F.myAccountingPeriod_unlimF.onEvent(myAccountingPeriod_unlimF.java:37)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
   ... 8 more


Если этот код запустить как глобальный скрипт поведения, то ошибки нет.


Информация о версии:

Клиент: вер. 5.2 сборка 1099 от 30.01.2013 18:56:33
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_24
Сервер: вер. 5.2 сборка 1395 от 30.01.2013 18:56:42
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_37

inet вер. 5.2 сборка 1085 от 30.01.2013 18:56:40


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в ContractTariffOptionDao.list
СообщениеДобавлено: 18 фев 2013, 03:32 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Нужно использовать

Код:
if(UserMap.getMap().size()==0){
   UserMap.initUserMap(con);
}


перед вызовом

Код:
ContractTariffOptionDao ctom = new ContractTariffOptionDao(con);
List currentOptionList = ctom.list(cid, now, false, needNonActivated);


Почему так?

Почему этого не требуется для
Код:
InetAccountingPeriodDao periodDao = new InetAccountingPeriodDao(con, INET_MID, -1);
List periods = periodDao.list(cid);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в ContractTariffOptionDao.list
СообщениеДобавлено: 18 фев 2013, 07:55 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
В списке опций выдаётся имя пользователя, который её подключал, которое берётся из UserMap
UserMap - синглтон, который в контексте серверов Access и Accounting модуля Inet не инициализируется стандартно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в ContractTariffOptionDao.list
СообщениеДобавлено: 18 фев 2013, 12:33 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Спасибо, учту.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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