Java Debugging Practice: 55 Bug Hunts on Real Code
55 Java bug hunts — 15 easy · 26 medium · 14 hard — each a small project with a planted bug, a bug report and hidden tests that decide whether the fix is…
- Hunts: 55
- By difficulty: 15 easy · 26 medium · 14 hard
- Reward: 50 XP per complete fix
Java classes and services with a bug in the logic: strings compared by reference, integer division where a ratio was meant, counters and casts that overflow, a calendar that forgets a leap year. The project compiles; the tests say what it should have done.
Every Java bug hunt
- Gangnam Style Broke the Counter Easy · Backend · Overflow · Counters
- Read Your Own Writes Easy · Database · Replication · Consistency
- Sessions for Someone Else Easy · Backend · Strings · Equality
- The 37th of March Easy · Backend · Validation · Dates
- The Auction That Closed Instantly Easy · Backend · Time · Units
- The Coupon That Stacked Itself Easy · Backend · Idempotency · Pricing
- The Dotless I in Istanbul Easy · Backend · Unicode · Parsing
- The Request With Too Many Parameters Easy · Backend · Security · Parsing
- The Share Price That Outgrew Its Integer Easy · Backend · Overflow · Money
- The Sunset That Crashed the Phone Easy · Frontend · Overflow · Bounds
- The Upsert That Forgot to Add Easy · Database · Upserts · Counters
- The Year 2038 Problem Easy · Backend · Time · Overflow
- The Year That Didn't Fit in an Int Easy · Backend · Overflow · Time
- Two Billion Events and One More Easy · Database · Overflow · SQL
- User Minus One Is Root Easy · Backend · Security · Auth
- Ariane's Sixteen Bits Hard · Backend · Overflow · Casting
- One Frame Behind Forever Hard · Frontend · Game Loops · Rounding
- Priority Inversion on Mars Hard · Backend · Concurrency · State
- The Break That Left the Switch Hard · Backend · State · Networking
- The Class Path Nobody Denied Hard · Backend · Security · Validation
- The Clock That Ran Backwards Hard · Database · IDs · Clocks
- The Hang at 49.7 Days Hard · Backend · Time · Overflow
- The Log That Looked Things Up Hard · Backend · Injection · Logging
- The Missing Torque Calibration Hard · Backend · Config · Safety
- The Root That Brought Its Own Generator Hard · Backend · Security · Validation
- The Signature Made of Zeros Hard · Backend · Security · Crypto
- Three Runs Deep Is Not Deep Enough Hard · Backend · Algorithms · Overflow
- Two Billion Transactions Later Hard · Database · Overflow · Time
- Two Waypoints, One Name Hard · Backend · Parsing · Safety
- 248 Days to Reboot Medium · Backend · Overflow · Counters
- A Century of Missing Interest Medium · Backend · Integer Division · Finance
- Escaping the Wildcard Medium · Database · SQL · Escaping
- Interest Sent as Orders Medium · Backend · Money · Validation
- Orders Sent to the Unknown Queue Medium · Backend · Validation · Routing
- Random Routing, Idle Dynos Medium · Backend · Networking · Concurrency
- Satoshis, Not Doubles Medium · Database · Floating Point · Money
- Tenths of a Second Since 2000 Medium · Backend · Overflow · Time
- The App That Kept Registering Itself Medium · Backend · Idempotency · State
- The Autosave That Cut You Off Medium · Frontend · Debounce · Timers
- The Blank Field That Crashed Every Region Medium · Backend · Validation · Config
- The Certificate Nobody Renewed Medium · Backend · Time · Config
- The Clock Started Eleven Hours Early Medium · Backend · Time · State
- The Consumer Key That Opened Enterprise Mail Medium · Backend · Security · Auth
- The Edge of the Far Lands Medium · Backend · Overflow
- The February 29th Certificate Medium · Backend · Dates · Leap Years
- The Kill Screen at Level 256 Medium · Frontend · Overflow · Rendering
- The Leaderboard Shuffle Medium · Frontend · Sorting · Stability
- The Midpoint That Overflowed Medium · Backend · Overflow · Algorithms
- The Negative Shard Medium · Database · Hashing · Overflow
- The Percent That Escaped Medium · Backend · Encoding · URLs
- The Storage Certificate That Lapsed Medium · Backend · Time · Overflow
- The Week Number That Went Back to 1999 Medium · Backend · Time · Overflow
- The Week That Belonged to Next Year Medium · Backend · Time · Dates
- The Zune Freeze Medium · Backend · Dates · Leap Years
- Two Files Named classes.dex Medium · Backend · Security · Validation