File tree Expand file tree Collapse file tree 2 files changed +28
-6
lines changed Expand file tree Collapse file tree 2 files changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -501,12 +501,15 @@ public Task<Void> then(Task<Void> task) throws Exception {
501
501
}
502
502
503
503
@ Override
504
- void setState (ParseObject .State newState ) {
505
- // Avoid overwriting auth info
506
- State .Builder builder = new State .Builder (getState ());
507
- builder .apply (newState );
508
-
509
- super .setState (builder .build ());
504
+ /* package */ void setState (ParseObject .State newState ) {
505
+ // Avoid clearing sessionToken when updating the current user's State via ParseQuery result
506
+ if (isCurrentUser () && getSessionToken () != null
507
+ && newState .get ("sessionToken" ) == null ) {
508
+ super .setState (newState .newBuilder ().put ("sessionToken" , getSessionToken ()).build ());
509
+ }
510
+ else {
511
+ super .setState (newState );
512
+ }
510
513
}
511
514
512
515
@ Override
Original file line number Diff line number Diff line change @@ -1059,6 +1059,25 @@ public void testUpgradeToRevocableSessionAsync() throws Exception {
1059
1059
verify (currentUserController , times (1 )).setAsync (user );
1060
1060
}
1061
1061
1062
+ @ Test
1063
+ public void testDontOverwriteSessionTokenForCurrentUser () throws Exception {
1064
+ ParseUser .State sessionTokenState = new ParseUser .State .Builder ()
1065
+ .sessionToken ("sessionToken" )
1066
+ .build ();
1067
+ ParseUser .State emptyState = new ParseUser .State .Builder ().build ();
1068
+
1069
+ ParseUser user = ParseObject .from (sessionTokenState );
1070
+ user .setIsCurrentUser (true );
1071
+ assertEquals (user .getSessionToken (), "sessionToken" );
1072
+
1073
+ user .setState (emptyState );
1074
+ assertEquals (user .getSessionToken (), "sessionToken" );
1075
+
1076
+ user .setIsCurrentUser (false );
1077
+ user .setState (emptyState );
1078
+ assertNull (user .getSessionToken ());
1079
+ }
1080
+
1062
1081
//endregion
1063
1082
1064
1083
//region testUnlinkFromAsync
You can’t perform that action at this time.
0 commit comments