Skip to content

Commit 385c331

Browse files
Merge pull request zino-hofmann#1410 from aarsham/fix-null-check
Address null check error and prevent duplicate events on socket reconnect
2 parents eebac38 + acdaabc commit 385c331

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

packages/graphql/lib/src/core/fetch_more.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ Future<QueryResult<TParsed>> fetchMoreImplementation<TParsed>(
3434
final data = fetchMoreOptions.updateQuery(
3535
previousResult.data,
3636
fetchMoreResult.data,
37-
)!;
37+
);
3838

3939
fetchMoreResult.data = data;
4040

41-
if (originalOptions.fetchPolicy != FetchPolicy.noCache) {
41+
if (originalOptions.fetchPolicy != FetchPolicy.noCache && data != null) {
4242
queryManager.attemptCacheWriteFromClient(
4343
request,
4444
data,

packages/graphql/lib/src/links/websocket_link/websocket_client.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,8 +372,8 @@ class SocketClient {
372372
}
373373

374374
void onConnectionLost([Object? e]) async {
375-
var code = socketChannel!.closeCode;
376-
var reason = socketChannel!.closeReason;
375+
var code = socketChannel?.closeCode;
376+
var reason = socketChannel?.closeReason;
377377

378378
await _closeSocketChannel();
379379
if (e != null) {
@@ -502,6 +502,7 @@ class SocketClient {
502502
)
503503
: waitForConnectedStateWithoutTimeout;
504504

505+
sub?.cancel();
505506
sub = waitForConnectedState.listen((_) {
506507
final Stream<GraphQLSocketMessage> dataErrorComplete = _messages.where(
507508
(GraphQLSocketMessage message) {

0 commit comments

Comments
 (0)