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

parse-community / Parse-SDK-Android
70%

Build:
DEFAULT BRANCH: master
Repo Added 05 Apr 2017 09:29PM CUT
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
  • List 0
  • Changed 1
  • Source Changed 1
  • Coverage Changed 0
Loading...
Coverage∆FileLinesRelevantCoveredMissedHits/Line
No data available in table
Showing 0 to 0 of 0 entries
  • Previous
  • Next

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 CUT Jawnnypoo travis-ci pending completion  
993 master Google should come first now (#917) push 20 Dec 2018 10:52PM CUT web-flow travis-ci pending completion  
991 master chore: Update firebase messaging to 17.3.4 (#916) push 20 Dec 2018 06:09PM CUT 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 CUT Jawnnypoo travis-ci pending completion  
984 master NullSafe getNotification when building push notification (#889) push 25 Sep 2018 02:08PM CUT 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 CUT Jawnnypoo travis-ci pending completion  
980 master Set version name to "unknown" if not found in manifest (#870) push 01 Aug 2018 01:10AM CUT web-flow travis-ci pending completion  
977 master Fix badges (#868) push 31 Jul 2018 03:14PM CUT web-flow travis-ci pending completion  
975 master Add links for additional projects (#867) push 31 Jul 2018 03:08PM CUT web-flow travis-ci pending completion  
972 master Return null result properly for cloud function (#862) push 26 Jul 2018 12:37PM CUT 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

© 2025 Coveralls, Inc