=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DatabaseSupportedInternalMemoryMessageQueue.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DatabaseSupportedInternalMemoryMessageQueue.java 2013-11-12 08:46:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DatabaseSupportedInternalMemoryMessageQueue.java 2013-12-10 08:37:23 +0000 @@ -34,7 +34,6 @@ import org.hisp.dhis.sms.incoming.IncomingSms; import org.hisp.dhis.sms.incoming.IncomingSmsStore; -import org.hisp.dhis.sms.incoming.SmsMessageStatus; public class DatabaseSupportedInternalMemoryMessageQueue implements MessageQueue @@ -71,7 +70,6 @@ public void remove( IncomingSms message ) { message.setParsed( true ); - message.setStatus( SmsMessageStatus.PROCESSED ); smsStore.update( message ); queue.remove( message ); } @@ -90,5 +88,5 @@ { this.smsStore = smsStore; } - + } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DefaultSmsSender.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DefaultSmsSender.java 2013-11-14 08:56:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/DefaultSmsSender.java 2013-12-10 08:37:23 +0000 @@ -70,7 +70,7 @@ { this.userService = userService; } - + private OutboundSmsService outboundSmsService; public void setOutboundSmsService( OutboundSmsService outboundSmsService ) @@ -97,7 +97,7 @@ resultMessage = isWastedSMS( sms ); if ( resultMessage == null ) { - resultMessage = transportService.sendMessage( sms, gatewayId ); + resultMessage = transportService.sendMessage( sms, gatewayId ); } return resultMessage; } @@ -110,7 +110,7 @@ public String sendMessage( OutboundSms sms ) throws SmsServiceException { - String message = null; + // String message = null; if ( !transportService.isEnabled() ) { throw new SmsServiceNotEnabledException(); @@ -118,19 +118,14 @@ if ( transportService != null ) { - message = isWastedSMS( sms ); - if ( message == null ) - { - message = transportService.sendMessage( sms, transportService.getDefaultGateway() ); - } - return message; + return transportService.sendMessage( sms, transportService.getDefaultGateway() ); } else { return "outboundsms_saved"; } } - + @Transactional @Override public String sendMessage( String message, String phoneNumber ) @@ -150,7 +145,7 @@ return "outboundsms_saved"; } - + @Transactional @Override public String sendMessage( String subject, String text, User sender, List users, boolean forceSend ) @@ -190,7 +185,6 @@ { toSendList.addAll( users ); } - Set phoneNumbers = null; @@ -300,7 +294,7 @@ sms.setRecipients( recipients ); message = isWastedSMS( sms ); - if( message == null ) + if ( message == null ) { try { @@ -313,7 +307,7 @@ log.warn( "Unable to send message through sms: " + sms, e ); } } - + return message; } @@ -343,13 +337,14 @@ return splitLongUnicodeString( secondTempString, result ); } } - + public String isWastedSMS( OutboundSms sms ) { List listOfRecentOutboundSms = outboundSmsService.getAllOutboundSms( 0, 10 ); - for( OutboundSms each: listOfRecentOutboundSms ) + for ( OutboundSms each : listOfRecentOutboundSms ) { - if( each.getRecipients().equals( sms.getRecipients() )&& each.getMessage().equalsIgnoreCase( sms.getMessage() ) ) + if ( each.getRecipients().equals( sms.getRecipients() ) + && each.getMessage().equalsIgnoreCase( sms.getMessage() ) ) { return "system is trying to send out wasted SMS"; } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsPublisher.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsPublisher.java 2013-11-12 08:46:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsPublisher.java 2013-12-10 08:37:23 +0000 @@ -33,6 +33,8 @@ import org.apache.commons.logging.LogFactory; import org.hisp.dhis.sms.incoming.IncomingSms; import org.hisp.dhis.sms.incoming.IncomingSmsListener; +import org.hisp.dhis.sms.incoming.IncomingSmsService; +import org.hisp.dhis.sms.incoming.SmsMessageStatus; import org.springframework.beans.factory.annotation.Autowired; public class SmsPublisher @@ -119,17 +121,19 @@ } } smsSender.sendMessage( "No command found", message.getOriginator() ); + message.setStatus( SmsMessageStatus.UNHANDLED ); } catch ( Exception e ) { - e.printStackTrace(); log.error( e ); smsSender.sendMessage( e.getMessage(), message.getOriginator() ); - } - - messageQueue.remove( message ); - message = messageQueue.get(); - log.info( "Queue Size: " + messageQueue.get() ); + message.setStatus( SmsMessageStatus.FAILED ); + } + finally + { + messageQueue.remove( message ); + message = messageQueue.get(); + } } }