• This is Picnic
    About PicnicWorking with usBlogsSustainability
  • Tech
  • Operations
    Work in Picnic’s OperationBecome a Warehouse WorkerBecome a Delivery Driver
  • Teams
    AnalyticsConsumerCreativePeople & FinanceSupply ChainCustomer SuccessStudents
🇬🇧
EN
🇬🇧
EN
🇩🇪
DE
🇫🇷
FR
🇳🇱
NL
  • All jobs
  • This is Picnic
    About PicnicWorking with usBlogsSustainability
  • Tech
  • Operations
    Work in Picnic’s OperationBecome a Warehouse WorkerBecome a Delivery Driver
  • Teams
    AnalyticsConsumerCreativePeople & FinanceSupply ChainCustomer SuccessStudents
🇬🇧
EN
🇬🇧
EN
🇩🇪
DE
🇫🇷
FR
🇳🇱
NL
All jobs
‌

Building the supermarket on wheels together

Picnic

  • Business
  • Operations
  • Tech
  • Delivery Driver
  • Warehouse Worker

Resources

  • FAQ
  • Relocation
  • Blogs

Company

  • About us
  • Sustainability

Privacy policy

Cookie preferences

© 2025 Picnic
Back

Picnic Open-sources Error Prone Support

Written by Sander MakNov 30, 2022 08:259 min read
image
2210 BlogPosts Images  Error Prone2

We’re excited to announce that Picnic’s Error Prone Support project is now open-source!

Last week, we already shared an in-depth overview of how Picnic has adopted Google’s Error Prone static analysis tool for Java code. In short, it allows us to:

  • Improve the consistency and quality of our Java codebases.
  • Introduce custom checks for code (anti-)patterns we value.
  • Refactor our Java code at scale in an automated manner.

You can also watch this Devoxx talk to get an overview of how Error Prone works and why we open-sourced Error Prone Support:

 

Why you should use Error Prone Support

We also shared how Picnic built up a considerable number of custom BugChecks and Refaster (refactoring) rules to be used with Error Prone. As of today, these can be used by anyone! You can easily integrate Error Prone Support (EPS) into your own code by following the steps in the Getting Started guide.

Here’s a small taste of what the Error Prone Support BugChecks and Refaster rules can do for you:

  • Catch run-time issues due to SLF4J API misuse at compile-time.
  • Streamline Mockito’s API usage in your tests.
  • Refactor TestNG assertions to AssertJ.
  • Start using the Optional API to its fullest extent in new Java versions.

Hungry for more? On the project’s website, you can find a complete overview of all BugChecks and Refaster rules that are available.

Next to the BugChecks and Refaster rules, EPS also offers other improvements. For example, the ability to easily load and run many Refaster rules in one go. Also, EPS introduces support for testing Refaster rules on top of Error Prone’s Refaster implementation. If you’re serious about adopting Error Prone and Refaster, adding EPS to the mix will make your life a lot easier!

What’s ahead

Besides what’s already open-sourced today, we have many plans to improve Error Prone Support! Let’s share a few of them. First and foremost, we want to improve the performance of applying large numbers of Refaster rules. Currently, the matching algorithm is very naive, so we’re developing a new algorithm to drastically speed up this process. Early tests already show a 50% performance improvement!

Secondly, we are introducing support for emitting website links for matches of Refaster rules, bringing the developer experience to the same level as BugCheck messages. As a result, developers can easily navigate to the documentation website and see extra information about the rule. You can see an example here.

Last, we’ll keep introducing more BugChecks and Refaster rules.

Our open-source commitment

Error Prone Support was developed over the past five years within Picnic, as you can see in the GitHub project’s history. Stephan Schroevers (Tech Lead Consumer Products) deserves a special mention here. He is the initiator and main contributor of the Error Prone Support project, and has championed the adoption of Error Prone within Picnic.

Picnic is fully committed to developing Error Prone Support further, now as an open-source project. That means we’d love to see your contributions as well! Once you start developing your own BugChecks and Refaster rules, we encourage you to check out our contribution guidelines and open a Pull Request. Let’s improve as many Java codebases as we can, together!

Written by: Sander Mak

Recent blog posts

We’re strong believers in learning from each other, so our employees write about what interests them.

image
1*Hl8hRnp3VLEy NMNVnHmfA

Why and How We Built a Flexible Payments System

Erdem Erbas
image
1*PuQeCUNLzx8qjclBVWLrlA

Adding Eyes to Picnic’s Automated Warehouses Part 2

Sven Arends
image
1*IysBge6Dr1PvYBv6Rz10tQ

Picnic 10 years: 2024 — Building a modular warehouse

Matthijs IJkema
image
1*aDkX3RJbFvPKgtPi3ZfG1Q

Growing the next generation of leadership

Svava Hildur Bjarnadóttir
image
1* bLM219aXdO6bUG2EuwoRg

Picnic 10 years: 2022 — Building a Store Platform to Scale Beyond a Million Customers

Lars Lockefeer
image
1*BWOEL u3UlKt70wA6d6dCg

Automating the Pick: How Picnic is Integrating Robots in Their Order-Picking Process

Jhon Mauro
image
1*T685esuz8Vcmx QurncJFg

Breaking a Supply Chain Monolith — A Learning Journey on the Ship of Theseus

Chris Dekker
image
1* sxoFYevgghT0c8ULHZXzg

From Fragile to Flexible: Rebuilding Our Slotting Brain from Scratch

Evgenii Korobkov
image
0*elYLCfdXxLezQHVL

Picnic 10 Years: 2021 — Expanding into France, and beyond

Seleme Topuz
image
1*cTOlOA5DOpTwOym09QP0yg

Picnic 10 years: 2020 — Sudo pick me a sandwich

Sjoerd Cranen
image
1*eyur2Ar2fN3j0ZMOoygbUQ

Adding Eyes to Picnic’s Automated Warehouses

Sander Lam
image
1*XhA QaRoOLFIHYss0gO9vQ

Building an AI-first company: lessons from scaling from a small start-up to a Machine Learning…

Jelmer Borst
image
picnic blog job banner image

Want to join Sander Mak in finding solutions to interesting problems?