Skip to content

Commit a00da41

Browse files
authored
Issue #213 & #249 (#232)
* 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>
1 parent c6458db commit a00da41

4 files changed

Lines changed: 57 additions & 12 deletions

File tree

org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/MqttAsyncClient.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,9 @@ public IMqttToken connect(MqttConnectOptions options, Object userContext, IMqttA
520520
if (comms.isClosed()) {
521521
throw new MqttException(MqttException.REASON_CODE_CLIENT_CLOSED);
522522
}
523-
523+
if(options == null){
524+
options = new MqttConnectOptions();
525+
}
524526
this.connOpts = options;
525527
this.userContext = userContext;
526528
final boolean automaticReconnect = options.isAutomaticReconnect();
@@ -1099,7 +1101,9 @@ private void stopReconnectCycle(){
10991101
String methodName = "stopReconnectCycle";
11001102
//@Trace 504=Stop reconnect timer for client: {0}
11011103
log.fine(CLASS_NAME, methodName, "504", new Object[]{this.clientId});
1102-
reconnectTimer.cancel();
1104+
if(reconnectTimer != null){
1105+
reconnectTimer.cancel();
1106+
}
11031107
reconnectDelay = 1000; // Reset Delay Timer
11041108

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

11131119
}
11141120

org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,15 @@ public class MqttDefaultFilePersistence implements MqttClientPersistence {
5151
private File clientDir = null;
5252
private FileLock fileLock = null;
5353

54-
private static final FilenameFilter FILE_FILTER = new FilenameFilter() {
55-
public boolean accept(File dir, String name) { return name.endsWith(MESSAGE_FILE_EXTENSION); }
56-
};
54+
//TODO
55+
private static FilenameFilter FILENAME_FILTER;
56+
57+
private static FilenameFilter getFilenameFilter(){
58+
if(FILENAME_FILTER == null){
59+
FILENAME_FILTER = new PersistanceFileNameFilter(MESSAGE_FILE_EXTENSION);
60+
}
61+
return FILENAME_FILTER;
62+
}
5763

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

246252
private File[] getFiles() throws MqttPersistenceException {
247253
checkIsOpen();
248-
File[] files = clientDir.listFiles(FILE_FILTER);
254+
File[] files = clientDir.listFiles(getFilenameFilter());
249255
if (files == null) {
250256
throw new MqttPersistenceException();
251257
}
@@ -264,11 +270,8 @@ private boolean isSafeChar(char c) {
264270
* @param dir The directory in which to scan and restore backups
265271
*/
266272
private void restoreBackups(File dir) throws MqttPersistenceException {
267-
File[] files = dir.listFiles(new FileFilter() {
268-
public boolean accept(File f) {
269-
return f.getName().endsWith(MESSAGE_BACKUP_FILE_EXTENSION);
270-
}
271-
});
273+
File[] files = dir.listFiles(new PersistanceFileFilter(MESSAGE_BACKUP_FILE_EXTENSION));
274+
272275
if (files == null) {
273276
throw new MqttPersistenceException();
274277
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.eclipse.paho.client.mqttv3.persist;
2+
3+
import java.io.File;
4+
import java.io.FileFilter;
5+
6+
public class PersistanceFileFilter implements FileFilter{
7+
8+
private final String fileExtension;
9+
10+
public PersistanceFileFilter(String fileExtension){
11+
this.fileExtension = fileExtension;
12+
}
13+
14+
public boolean accept(File pathname) {
15+
return pathname.getName().endsWith(fileExtension);
16+
}
17+
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.eclipse.paho.client.mqttv3.persist;
2+
3+
import java.io.File;
4+
import java.io.FilenameFilter;
5+
6+
public class PersistanceFileNameFilter implements FilenameFilter{
7+
8+
private final String fileExtension;
9+
10+
public PersistanceFileNameFilter(String fileExtension){
11+
this.fileExtension = fileExtension;
12+
}
13+
14+
public boolean accept(File dir, String name) {
15+
return name.endsWith(fileExtension);
16+
}
17+
18+
}

0 commit comments

Comments
 (0)