Java

Clamshell: 2020-11-02

Recent news in tech in a clamshell

Jonatan Ivanov
  • Proposed schedule for JDK 16
  • JEPs proposed to target JDK 16
  • Best IDEs in Java for App Development
  • Java Futures with Brian Goetz
  • Quiz yourself: Apply encapsulation principles to a class
  • Modern Java toys that boost productivity, from type inference to text blocks
  • HashiCorp Waypoint
  • Systems Thinking
  • In the Search of Code Quality
  • Crowdsec
  • Mario on Vim
  • gitflux
  • jLove

Clamshell: 2020-10-19

Recent news in tech in a clamshell

Jonatan Ivanov
  • FSF is 35
  • Git 2.29
  • Building Netflix’s Distributed Tracing Infrastructure
  • Immutable Collections in Java using Sealed Types
  • JDK 15 Release: 64 New Features and APIs
  • Cloudflare API Shield
  • Java Exception Handling Examples in Open Source Projects
  • What is Garbage collection log, Thread dump, Heap dump?
  • Java Magazine: Quiz yourself
  • bit
  • nb

Clamshell: 2020-10-05

Recent news in tech in a clamshell

Jonatan Ivanov
  • Hacktoberfest 2020
  • Oracle Developer Live Java 2020
  • Java InfoQ Trends Report (September 2020)
  • Awesome Cheatsheets
  • A convenient list of essential Java 15 resources
  • GitHub Code Scanning is now available
  • A Picture of Java in 2020
  • Microsoft Windows XP Source Code Reportedly Leaked Online
  • The Garbage Collection Bibliography
  • Is High Quality Software Worth the Cost?
  • How do lambda expressions really work in Java?
  • duf
  • diagrams

Clamshell: 2020-09-21

Recent news in tech in a clamshell

Jonatan Ivanov
  • The Arrival of Java 15
  • Announcing Tribuo, a Java Machine Learning library
  • GitHub CLI 1.0
  • Microsoft reveals findings from their experimental undersea datacenter
  • OpenJDK: In the new age of Concurrent Garbage Collectors
  • Four common pitfalls of the BigDecimal class and how to avoid them
  • Venkat Subramaniam: Java is changing in a responsible manner
  • Why and when you should use JPA
  • Best Intellij IDEA Plugins
  • Security by Obscurity is Underrated
  • Never Skip Retros

Clamshell: 2020-09-14

Recent news in tech in a clamshell

Jonatan Ivanov
  • Java 15 GA Release
  • NYJavaSIG 25th Anniversary Event
  • foojay — a place for friends of OpenJDK
  • Let’s Get Lazy by Venkat Subramaniam
  • Vector API is proposed to target JDK 16
  • Developing Micronaut Applications With IntelliJ IDEA
  • Bootiful Testing by Josh Long
  • 21 Books Java Developers Should Read in 2020
  • Kubernetes YAML Generator
  • Design Bonos
  • Elastic Metaspace proposed to target JDK 16
  • JDK 15 G1/Parallel GC changes
  • Cognitive Biases in Software Development
  • Changelog CI?
  • K9s - Kubernetes CLI To Manage Your Clusters In Style

Clamshell: 2020-09-07

Recent news in tech in a clamshell

Jonatan Ivanov
  • OpenJDK was transitioned to GitHub
  • Spring One highlights are online
  • Introducing GitHub Container Registry
  • JetBrains Mono
  • Nerd Fonts
  • VS Code Debug Visualizer
  • Kotlin 1.4 Released
  • croc
  • Jackson Support for Java 14 Records
  • The State of Spring 2020 Report
  • How They Test?
  • Modern Data Engineer Roadmap 2020
  • Migrating from JUnit 4 to JUnit 5
  • How 4 lines of Java code end up in 518772 lines in production
  • Oracle Developer Live - Java
  • Pock

Clamshell: 2020-08-31

Recent news in tech in a clamshell

Jonatan Ivanov
  • The Start menu is 25 years old
  • The Linux Kernel is 29 years old
  • Java in 2020
  • Inside Java 15: Fourteen JEPs in five buckets
  • Finalizing in JDK 16: Pattern matching for instanceof
  • Creating Efficient Docker Images with Spring Boot 2.3
  • Config file processing in Spring Boot 2.4
  • Java Pub House 92. Not your Grandpa’s Serialization!
  • Architecture Playbook
  • My terminal became more Rusty

Clamshell: 2020-08-23

Recent news in tech in a clamshell

Jonatan Ivanov
  • Stack Overflow 2020 Developer Survey
  • Beyond Java 8
  • Patterns of Distributed Systems
  • Microsoft OSS
  • Java at 25: Features that made an impact and a look to the future
  • 25 Years of Java: the past to the present
  • Java 15 - Innovating for modern application development
  • Researchers Exploited A Bug in Emotet to Stop the Spread of Malware
  • Groovy Podcast
  • The ReadME Project

The Most Common Concurrency Issues and How to Fix Them: Part 3

Jonatan Ivanov

In the first part of the series, I showed you a simple class which has three concurrency issues. In the second one, I explained the first issue: Race Condition. In this post, I would like to explain the rest of them. By the end of the series, you will understand their basic mechanism, you will be able to identify them and I will give you a couple of advice on how to fix them.

I wrote a few tests to demonstrate two of the issues, the third one is tough, please let me know if you have any idea how can it be tested. I’m also interested if you have any ideas for improvements for the existing tests because…
…well, keep reading and you will see. :)