• 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: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 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
  • master

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  
996 pr/fix-896-stackoverflow Accept the updated Android Build-Tools 27 license Pull #925 14 Feb 2019 03:25PM CUT web-flow travis-ci pending completion  
995 pr/fix-896-stackoverflow Accept the updated Android Build-Tools 27 license Pull #925 14 Feb 2019 01:08AM CUT web-flow 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  
992 google Google should come first now Pull #917 20 Dec 2018 06:17PM 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  
990 feature/update_fcm chore: Update firebase messaging to 17.3.4 Pull #916 20 Dec 2018 11:34AM CUT web-flow 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  
988 feature/kotlin-delegates Merge branch 'master' into feature/kotlin-delegates Pull #892 27 Sep 2018 03:15PM CUT web-flow travis-ci pending completion  
987 feature/kotlin-delegates Update kotlin version Signed-off-by: Daniel San <danielsan@ilhasoft.com.br> Pull #892 27 Sep 2018 03:13PM 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