public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
try {
CountData countData = StatisticsServiceComponent.getCountData();
SystemStatisticsUtil systemStatisticsUtil = StatisticsServiceComponent.getSystemStatisticsUtil();
EventingConfigData eventingConfigData = StatisticsServiceComponent.getServiceStatisticsPublisherAdmin()
.getEventingConfigData();
if (eventingConfigData != null && eventingConfigData.eventingEnabled()
&& eventingConfigData.getSystemRequestCountThreshold() > 0) {
SystemStatistics systemStatistics = systemStatisticsUtil.getSystemStatistics(msgContext
.getConfigurationContext().getAxisConfiguration());
if (msgContext.getAxisOperation() != null) {
OperationStatistics operationStatistics = systemStatisticsUtil.getOperationStatistics(
msgContext.getAxisOperation());
if (operationStatistics.getRequestCount() == 0) {
return InvocationResponse.CONTINUE;
}
}//In very rare cases msgContext.getAxisOperation() becomes null, then we can't get statistics.