vermaravi764 Posted May 26, 2021 Share Posted May 26, 2021 2021-05-26 10:07:59,035 ERROR ErrorPageHandlerAction,default task-4:115 - Error UID e6251a20-c141-406b-8b87-40244433f7c1com.jaspersoft.jasperserver.api.JSException: Error filling reportArguments: at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$FillResultListener.reportFillError(EngineServiceImpl.java:1327) at net.sf.jasperreports.engine.fill.BaseFillHandle.notifyError(BaseFillHandle.java:216) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:138) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:952) at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:169) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:903) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1831) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1150) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1079) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:974) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)Caused by: net.sf.jasperreports.engine.JRException: java.lang.NullPointerException at com.jaspersoft.ji.adhoc.strategy.StrategyAwareDomainQueryExecuter.createDatasource(StrategyAwareDomainQueryExecuter.java:251) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1245) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:723) at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:429) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:570) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:123) ... 10 moreCaused by: java.lang.NullPointerException at com.jaspersoft.ji.adhoc.strategy.DataStrategyServiceImpl.getDataStrategy(DataStrategyServiceImpl.java:82) at com.jaspersoft.ji.adhoc.strategy.DataStrategyServiceImpl.getDataStrategy(DataStrategyServiceImpl.java:40) at com.jaspersoft.ji.adhoc.service.AdhocEngineServiceImpl.getDataStrategy(AdhocEngineServiceImpl.java:393) at com.jaspersoft.ji.adhoc.strategy.StrategyAwareDomainQueryExecuter.createDatasource(StrategyAwareDomainQueryExecuter.java:164) ... 15 more Link to comment Share on other sites More sharing options...
joseng62 Posted May 26, 2021 Share Posted May 26, 2021 Hi vermaravi. Not able to give you solution but a bit of guidance. Main problem is : "NullPointerException"Something is not defined of does not exist. Might have something to do with your datasource. You making use of adhoc report, maybe the domain is not correctly defined. com.jaspersoft.ji.adhoc.strategy.StrategyAwareDomainQueryExecuter.createDatasource Also you might have more stack strace logs in the jasperserver.log file that gives you more pinpointed log issues. Link to comment Share on other sites More sharing options...
vermaravi764 Posted May 27, 2021 Author Share Posted May 27, 2021 Hi Joseng62,Thanks for your help.Basically issue is in com.jaspersoft.ji.adhoc.strategy.DataStrategyServiceImpl class and this class define in ji-gyroscope-7.1.3.jar .this jar use in jasper report,when execute this line dataStrategyFromJRXML = adhocData.getDataset().getPropertiesMap().getProperty(PREFERRED_DATA_STRATEGY_PROPERTY);dhocData.getDataset().getPropertiesMap() getting null, that resaon generate null pointer execption. but because of this DataStrategyServiceImpl class define in ji-gyroscope-7.1.3.jar jar so we unable to handle null or we don't know why this dhocData.getDataset().getPropertiesMap() line of code getting null. below are the full method.Thanks,I am waiting for your response.private AdhocDataStrategy getDataStrategy(AdhocMetadata adhocData, String preferredDataStrategy, boolean wrap, Map<String, String> parameters) throws Exception { // ordered set of all beans (we put preferred beans in first, then add the rest later) Set<String> allSet = new LinkedHashSet<String>(); // list of enabled beans; start with base list, but add preferred beans if not present Set<String> enabledSet = new LinkedHashSet<String>(dataStrategyBeans); // if we can find a preferred data strategy, try that first if (preferredDataStrategy != null) { allSet.add(preferredDataStrategy); enabledSet.add(preferredDataStrategy); } // then try one from jrxml String dataStrategyFromJRXML = null; if (adhocData.getDataset() != null) { dataStrategyFromJRXML = adhocData.getDataset().getPropertiesMap().getProperty(PREFERRED_DATA_STRATEGY_PROPERTY); // special case of upgrading from 3.5; if a report was created from a domain with the domain ds off, // this property would be set to "classicDataStrategy" which is now a clone of "newClassicDataStrategy", // but in 3.7 we are using "classicDomainDataStrategy" for domains when domain ds is off if ("classicDataStrategy".equals(dataStrategyFromJRXML) && adhocData instanceof AdhocTopicMetadata) { String language = ((AdhocTopicMetadata) adhocData).getQueryLanguage(); if (language != null && language.equals(Query.SL_LANGUAGE)) { dataStrategyFromJRXML = "classicDomainDataStrategy"; } } } if (dataStrategyFromJRXML != null) { allSet.add(dataStrategyFromJRXML); enabledSet.add(dataStrategyFromJRXML); } // For diagnostic adhoc String diagnosticDataStrategy = null; Boolean isDiagnostic = false; String diagnosticMode = null; if (parameters != null) { if (parameters.containsKey(IS_DIAGNOSTIC)) isDiagnostic = Boolean.parseBoolean(parameters.get(IS_DIAGNOSTIC)); if (parameters.containsKey(DIAGNOSTIC_MODE)) diagnosticMode = parameters.get(DIAGNOSTIC_MODE); } if (isDiagnostic && diagnosticMode != null && beanFactory.containsBean(diagnosticMode)) { diagnosticDataStrategy = parameters.get(DIAGNOSTIC_MODE); allSet.add(diagnosticDataStrategy); enabledSet.add(diagnosticDataStrategy); } // try all others not mentioned previously // (note: this contains both enabled and disabled beans) allSet.addAll(getAllDataStrategyBeans()); AdhocDataStrategy validStrategy = null; for (String strategyBeanName : allSet) { // make sure it's in the set of enabled beans before testing if (!enabledSet.contains(strategyBeanName)) { continue; } AdhocDataStrategy strategy = (AdhocDataStrategy) beanFactory.getBean(strategyBeanName); strategy.setName(strategyBeanName); strategy.setAdhocData(adhocData);// strategy.setReportParameters(reportParameters); // don't check data strategy if it was specified in jrxml if (strategy.isValid() || strategyBeanName.equals(dataStrategyFromJRXML) || strategyBeanName.equals(diagnosticDataStrategy)) { validStrategy = strategy; break; } } if (validStrategy == null) { throw new RuntimeException("Can't find strategy to handle request"); } validStrategy.getProperties().put(IS_DIAGNOSTIC, isDiagnostic.toString()); // Wrapping no longer results in a new data strategy. // It is query dependent, and will be locally managed by the effective datastrategy.// // if there is a wrapper and wrapping is requested, apply it to your strategy// if (wrap && wrapper != null) {// //TODO: Sergey P. in wrapper query is used only for logging// //We need a way to get DataStrategy without query// validStrategy = wrapper.wrap(query, validStrategy);// } // Save wrapping, dataStrategy will try to wrap if appropriate. validStrategy.setWrap(wrap); validStrategy.init(); return validStrategy; } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now