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; }