File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
src/main/java/com/pusher/client/channel Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -33,4 +33,18 @@ public interface SubscriptionEventListener {
33
33
* See {@linkplain PusherEvent} for more.
34
34
*/
35
35
void onEvent (final PusherEvent event );
36
+
37
+ /**
38
+ * Callback that is fired whenever an unexpected error occurs processing
39
+ * for this {@linkplain SubscriptionEventListener}.
40
+ *
41
+ * @param message
42
+ * A description of the problem.
43
+ * @param e
44
+ * An associated exception, if available.
45
+ */
46
+ default void onError (String message , Exception e ) {
47
+ // No-op
48
+ return ;
49
+ };
36
50
}
Original file line number Diff line number Diff line change @@ -95,9 +95,20 @@ public String toString() {
95
95
96
96
@ SuppressWarnings ({ "rawtypes" , "unchecked" })
97
97
private void handleSubscriptionSuccessfulMessage (final String message ) {
98
+ final ChannelEventListener listener = getEventListener ();
98
99
99
100
// extract data from the JSON message
100
101
final PresenceData presenceData = extractPresenceDataFrom (message );
102
+ if (presenceData == null ) {
103
+ if (listener != null ) {
104
+ listener .onError (
105
+ "Subscription failed: Presence data not found" ,
106
+ null
107
+ );
108
+ }
109
+ return ;
110
+ }
111
+
101
112
final List <String > ids = presenceData .ids ;
102
113
final Map <String , Object > hash = presenceData .hash ;
103
114
@@ -109,7 +120,7 @@ private void handleSubscriptionSuccessfulMessage(final String message) {
109
120
idToUserMap .put (id , user );
110
121
}
111
122
}
112
- final ChannelEventListener listener = getEventListener ();
123
+
113
124
if (listener != null ) {
114
125
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener )listener ;
115
126
presenceListener .onUsersInformationReceived (getName (), getUsers ());
You can’t perform that action at this time.
0 commit comments