Subtitle: A look at the latest fixes and optimizations in the essential Java utility library.
Introduction
If you are a Java developer, you are likely already familiar with Hutool. It is widely regarded as the "Swiss Army Knife" of Java development, reducing the boilerplate code needed for file handling, encryption, HTTP requests, and more.
Recently, the Hutool team released version 5.8.39. While this is a maintenance release, it brings crucial bug fixes and optimizations that improve stability. Here is a summary of the key changes you need to know about. hutool 39 new
Hutool 0.39 doesn’t try to change the world – it makes your daily Java coding slightly less annoying. And after ten years of writing Java, I’ll take “slightly less annoying” any day.
Upgrade, simplify, and get back to solving real problems.
Have a favorite Hutool utility? Or a feature request for 0.40? Drop a comment below or open an issue on GitHub. Subtitle: A look at the latest fixes and
Hutool 39 fixes a 4-year-old bug where CSV fields containing \n inside quotes broke parsing. The new CsvReadConfig.setErrorOnDifferentFieldCount(false) gracefully handles malformed rows.
Copying properties is routine. But what if you need to transform a value mid‑copy? Enter BeanUtil.copyProperties(source, target, (srcField, targetField) -> if ("password".equals(targetField)) return "***"; return srcField; );
No more post‑copy loops.
// Generate state token for OAuth2 flow String state = JwtUtil.create() .setPayload("redirect", "https://myapp.com/callback") .setExpirationTime(DateUtil.offsetMinute(new Date(), 10)) .sign(Algorithm.HS256(SecretUtil.generateKey(32)));
// Store in session (simplified) SessionUtil.setAttribute("oauth_state", state);