forum.bitel.ru
http://forum.bitel.ru/

Ошибка в ContractTariffOptionDao.list
http://forum.bitel.ru/viewtopic.php?f=44&t=7735
Страница 1 из 1

Автор:  Bazhutyan [ 15 фев 2013, 19:19 ]
Заголовок сообщения:  Ошибка в ContractTariffOptionDao.list

В событии запроса учётного периода получаю список доступных опций:

Код:
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

Автор:  Bazhutyan [ 18 фев 2013, 03:32 ]
Заголовок сообщения:  Re: Ошибка в ContractTariffOptionDao.list

Нужно использовать

Код:
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);

Автор:  Cromeshnic [ 18 фев 2013, 07:55 ]
Заголовок сообщения:  Re: Ошибка в ContractTariffOptionDao.list

В списке опций выдаётся имя пользователя, который её подключал, которое берётся из UserMap
UserMap - синглтон, который в контексте серверов Access и Accounting модуля Inet не инициализируется стандартно.

Автор:  Bazhutyan [ 18 фев 2013, 12:33 ]
Заголовок сообщения:  Re: Ошибка в ContractTariffOptionDao.list

Спасибо, учту.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/