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/ |