• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

parse-community / Parse-SDK-Android
70%

Build:
DEFAULT BRANCH: master
Repo Added 05 Apr 2017 09:29PM UTC
Files 122
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • 1.17.0
  • 1.17.1
  • 1.17.2
  • 1.17.3
  • 1.18.0
  • 1.18.1
  • 1.18.2
  • 1.18.3
  • 1.18.4
  • 1.18.5
  • 29d80c2f2f1ff920df6c46560a096830fa915223
  • 9e925fa81a2d5052b5ae0992f1f659c9ff925313

pending completion
997

push

travis-ci

Jawnnypoo
Fix StackOverflowError when merging ParseObject from JSON (#925)

* Add test for StackOverflowError during mergeFromServer

This test shows the #896 bug.

* Make a synchronized copy of availableKeys

`synchronizedSet(s)` ends up making a new wrapper for the supplied set, which
means on subsequent calls, it becomes a SynchronizedSet, wrapped in a
SynchronizedSet, wrapped ... etc.

When using the LocalDataStore, the ParseObject.State is reused for every
matching ClassName+ObjectId pair, so every time a ParseObject is parsed from
JSON data, the existing object is "refreshed" by making a copy of its State,
and then merging with the new data. Every call to State.newBuilder() is
therefore adding a new layer of SynchronizedSet to the availableKeys Set.

Eventually that nested hierarchy of sets becomes so large that it causes a
StackOverflowError for any operation on the collection.

By making a copy of the set before wrapping it in synchronizedSet(), that
nested hierarchy becomes severed, and we end up with just one level of
wrappers.

* Accept the updated Android Build-Tools 27 license

1 of 1 new or added line in 1 file covered. (100.0%)

6782 of 9709 relevant lines covered (69.85%)

0.7 hits per line

Relevant lines Covered
Build:
Build:
9709 RELEVANT LINES 6782 COVERED LINES
0.7 HITS PER LINE
Source Files on master
Detailed source file information is not available for this build.

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
997 master Fix StackOverflowError when merging ParseObject from JSON (#925) * Add test for StackOverflowError during mergeFromServer This test shows the #896 bug. * Make a synchronized copy of availableKeys `synchronizedSet(s)` ends up making a new... push 14 Feb 2019 03:51PM UTC Jawnnypoo travis-ci pending completion  
993 master Google should come first now (#917) push 20 Dec 2018 10:52PM UTC web-flow travis-ci pending completion  
991 master chore: Update firebase messaging to 17.3.4 (#916) push 20 Dec 2018 06:09PM UTC rogerhu travis-ci pending completion  
989 master Feature kotlin delegates (#892) * Implement generic delegate for attributes Signed-off-by: Daniel San <danielsan@ilhasoft.com.br> * Implement specialized property delegation for boolean Signed-off-by: Daniel San <danielsan@ilhasoft.com.b... push 02 Oct 2018 04:54PM UTC Jawnnypoo travis-ci pending completion  
984 master NullSafe getNotification when building push notification (#889) push 25 Sep 2018 02:08PM UTC Jawnnypoo travis-ci pending completion  
982 master Update README.md (#883) The service definition "com.parse.fcm.ParseFirebaseMessagingService" was missing the ">" character at the end, causing error in AndroidManifest.xmll push 02 Sep 2018 10:14AM UTC Jawnnypoo travis-ci pending completion  
980 master Set version name to "unknown" if not found in manifest (#870) push 01 Aug 2018 01:10AM UTC web-flow travis-ci pending completion  
977 master Fix badges (#868) push 31 Jul 2018 03:14PM UTC web-flow travis-ci pending completion  
975 master Add links for additional projects (#867) push 31 Jul 2018 03:08PM UTC web-flow travis-ci pending completion  
972 master Return null result properly for cloud function (#862) push 26 Jul 2018 12:37PM UTC web-flow travis-ci pending completion  
See All Builds (152)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc