Skip to content

Commit

Permalink
Issue #213 & #249 (#232)
Browse files Browse the repository at this point in the history
* Fixing typo in IMqttClient.java

Signed-off-by: James Sutton <james.sutton@uk.ibm.com>

* Issue #213

Signed-off-by: James Sutton <james.sutton@uk.ibm.com>

* Issue #249: Null Check for reconnect timer & Connect options

Signed-off-by: James Sutton <james.sutton@uk.ibm.com>
  • Loading branch information
jpwsutton committed Sep 1, 2016
1 parent c6458db commit a00da41
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,9 @@ public IMqttToken connect(MqttConnectOptions options, Object userContext, IMqttA
if (comms.isClosed()) {
throw new MqttException(MqttException.REASON_CODE_CLIENT_CLOSED);
}

if(options == null){
options = new MqttConnectOptions();
}
this.connOpts = options;
this.userContext = userContext;
final boolean automaticReconnect = options.isAutomaticReconnect();
Expand Down Expand Up @@ -1099,7 +1101,9 @@ private void stopReconnectCycle(){
String methodName = "stopReconnectCycle";
//@Trace 504=Stop reconnect timer for client: {0}
log.fine(CLASS_NAME, methodName, "504", new Object[]{this.clientId});
reconnectTimer.cancel();
if(reconnectTimer != null){
reconnectTimer.cancel();
}
reconnectDelay = 1000; // Reset Delay Timer

}
Expand All @@ -1108,7 +1112,9 @@ private void rescheduleReconnectCycle(int delay){
String methodName = "rescheduleReconnectCycle";
//@Trace 505=Rescheduling reconnect timer for client: {0}, delay: {1}
log.fine(CLASS_NAME, methodName, "505", new Object[]{this.clientId, new Long(reconnectDelay)});
reconnectTimer.schedule(new ReconnectTask(), reconnectDelay);
if(reconnectTimer != null){
reconnectTimer.schedule(new ReconnectTask(), reconnectDelay);
}

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,15 @@ public class MqttDefaultFilePersistence implements MqttClientPersistence {
private File clientDir = null;
private FileLock fileLock = null;

private static final FilenameFilter FILE_FILTER = new FilenameFilter() {
public boolean accept(File dir, String name) { return name.endsWith(MESSAGE_FILE_EXTENSION); }
};
//TODO
private static FilenameFilter FILENAME_FILTER;

private static FilenameFilter getFilenameFilter(){
if(FILENAME_FILTER == null){
FILENAME_FILTER = new PersistanceFileNameFilter(MESSAGE_FILE_EXTENSION);
}
return FILENAME_FILTER;
}

public MqttDefaultFilePersistence() { //throws MqttPersistenceException {
this(System.getProperty("user.dir"));
Expand Down Expand Up @@ -245,7 +251,7 @@ public Enumeration keys() throws MqttPersistenceException {

private File[] getFiles() throws MqttPersistenceException {
checkIsOpen();
File[] files = clientDir.listFiles(FILE_FILTER);
File[] files = clientDir.listFiles(getFilenameFilter());
if (files == null) {
throw new MqttPersistenceException();
}
Expand All @@ -264,11 +270,8 @@ private boolean isSafeChar(char c) {
* @param dir The directory in which to scan and restore backups
*/
private void restoreBackups(File dir) throws MqttPersistenceException {
File[] files = dir.listFiles(new FileFilter() {
public boolean accept(File f) {
return f.getName().endsWith(MESSAGE_BACKUP_FILE_EXTENSION);
}
});
File[] files = dir.listFiles(new PersistanceFileFilter(MESSAGE_BACKUP_FILE_EXTENSION));

if (files == null) {
throw new MqttPersistenceException();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.eclipse.paho.client.mqttv3.persist;

import java.io.File;
import java.io.FileFilter;

public class PersistanceFileFilter implements FileFilter{

private final String fileExtension;

public PersistanceFileFilter(String fileExtension){
this.fileExtension = fileExtension;
}

public boolean accept(File pathname) {
return pathname.getName().endsWith(fileExtension);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.eclipse.paho.client.mqttv3.persist;

import java.io.File;
import java.io.FilenameFilter;

public class PersistanceFileNameFilter implements FilenameFilter{

private final String fileExtension;

public PersistanceFileNameFilter(String fileExtension){
this.fileExtension = fileExtension;
}

public boolean accept(File dir, String name) {
return name.endsWith(fileExtension);
}

}

0 comments on commit a00da41

Please sign in to comment.