From java-core
Reviews Java code for thread safety, race conditions, deadlocks, and Java 21 virtual thread compatibility. Detects version via pom.xml/build.gradle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/java-core:java-concurrency-reviewThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Review the Java code for concurrency correctness. Before reviewing, detect the Java version from `pom.xml` or `build.gradle` — suggest modern alternatives only if the version supports them.
Review the Java code for concurrency correctness. Before reviewing, detect the Java version from pom.xml or build.gradle — suggest modern alternatives only if the version supports them.
List all concurrency mechanisms found: synchronized, volatile, AtomicXxx, Lock, ExecutorService, CompletableFuture, CountDownLatch, Semaphore, BlockingQueue, virtual threads (Java 21+).
count++) not wrapped in synchronized or AtomicIntegerif (map.containsKey(k)) map.get(k) → suggest map.computeIfAbsent()HashMap shared across threads → suggest ConcurrentHashMapArrayList / HashSet shared across threads → suggest concurrent alternativessynchronized calls that invoke external/unknown code while holding a lockReentrantLock without try/finally unlock → lock may never be releasedsynchronized blocks on different objectssynchronized on entire methods where only a small critical section needs protectionReentrantLock for fine-grained locking with timeout capabilitysynchronized(this) in classes exposed to external code → suggest private lock objectsynchronized on virtual thread code → suggest ReentrantLock (avoids carrier thread pinning)volatile, AtomicXxx, or synchronizationboolean flag fields used to stop threads → must be volatile or AtomicBooleanvolatilenew Thread(...) created directly in application code → suggest ExecutorServiceExecutorService never shut down → resource leakExecutors.newCachedThreadPool()) under high load → suggest bounded poolExecutors.newVirtualThreadPerTaskExecutor() for I/O-bound workloadsjstack <pid>/java-virtual-threads modernization/java-review for general code qualitynpx claudepluginhub ducpm2303/claude-java-plugins --plugin java-coreDetects concurrency bugs: deadlocks, wrong memory ordering, double-checked locking, and blocking operations inside locks. Use when writing multi-threaded code.
Race conditions, deadlocks, thread analysis, happens-before relationships.
Assesses concurrency context, analyzes thread safety, detects race conditions and deadlocks in multi-threaded/async systems using Go goroutines, Rust tokio, Node.js, Python, Java, Elixir actors.