Skip to content

refactor(java): clear the SDK's unused-variable warnings - #573

Merged
kartikeya-27 merged 5 commits into
masterfrom
chore/java-unused-resource-vars
Jul 28, 2026
Merged

refactor(java): clear the SDK's unused-variable warnings#573
kartikeya-27 merged 5 commits into
masterfrom
chore/java-unused-resource-vars

Conversation

@pratyush618

@pratyush618 pratyush618 commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

The Java SDK builds at --release 17, but the java22 source set (the Panama FFM
transport, packaged into META-INF/versions/22) pushes IDE tooling to resolve the
whole Gradle project at source 22. At that level an unread try-with-resources
variable is a warning — Java 22 could write _ there — so the editor reported 83
problems that javac never sees.

Rather than pin the IDE, this drops the unused variables:

  • 91 test sites hoist the resource out of the header, so the spec reads the
    variable and close-on-exit semantics are unchanged:

    Worker worker = queue.worker().handle(TASK, p -> p).start();
    try (worker) { ... }
  • ResourceTest had two workers in one header. They are nested rather than both
    hoisted, so a failing second start() still closes the first.

  • FfmTransport drops the unused STATUS_ERR constant; the wire codes are noted
    in a comment instead.

No rewritten try had a catch/finally, so moving the initializer out of the
header cannot change exception routing.

Verified: ./gradlew test spotlessCheck checkstyleMain checkstyleTest green
(466 + 21 tests, 0 failures), and a source-22 ecj sweep over src/main/java,
src/main/java22, src/test/java and test-support now reports zero unused
locals, fields and imports.

Summary by CodeRabbit

  • Bug Fixes

    • Improved handling of unexpected native status codes by treating them consistently as errors.
  • Tests

    • Updated worker lifecycle management across Java test coverage to ensure resources are started and closed reliably.
    • Preserved existing assertions for workflows, retries, resource handling, dispatch, serialization, and other behaviors.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 49a596e3-0764-4b34-8d37-4d5ba24d5b45

📥 Commits

Reviewing files that changed from the base of the PR and between c1e1da6 and 209011e.

📒 Files selected for processing (38)
  • sdks/java/src/main/java22/org/byteveda/taskito/internal/FfmTransport.java
  • sdks/java/src/test/java/org/byteveda/taskito/codegen/AnnotationProcessorTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/contrib/WebhookTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/CodelTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/DeadLetterByTaskTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/DependsOnTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/DispatchOrderTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/ErgonomicsTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/InterceptionTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/LogConsumerTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/PubSubLogTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/PubSubTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/RequeueTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/ResultBatchingTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/core/TaskPolicyConfigTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/internal/FfmRoundTripTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/resources/ResourceReloadTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/resources/ResourceTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/serialization/PayloadCodecTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/serialization/PerTaskCodecTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/CircuitBreakerTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/MiddlewareDisableTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/PushDispatchWorkerTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/RetryPolicyTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/RetryPredicateTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/TypedRetryExceptionTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/worker/WorkerTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowCacheTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowConditionTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowFanOutTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowGateTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowSagaTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowSubWorkflowTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowSubmitMapTest.java
  • sdks/java/src/test/java/org/byteveda/taskito/workflows/WorkflowTest.java
  • sdks/java/test-support/src/test/java/org/byteveda/taskito/test/InMemoryPubSubTest.java
  • sdks/java/test-support/src/test/java/org/byteveda/taskito/test/InMemoryQueueBackendTest.java
  • sdks/java/test-support/src/test/java/org/byteveda/taskito/test/MiddlewareContextTest.java

📝 Walkthrough

Walkthrough

The PR removes an unused native error constant and refactors Java tests to start Worker or queue resources before entering try-with-resources scopes. Existing handlers, assertions, and test behavior remain unchanged.

Changes

Java lifecycle and native status updates

Layer / File(s) Summary
Native status handling
sdks/java/src/main/java22/.../FfmTransport.java
Removes STATUS_ERR and documents that unhandled native statuses are treated as errors.
Worker lifecycle test refactor
sdks/java/src/test/java/org/byteveda/taskito/{codegen,contrib,core,internal,serialization,worker}/**
Moves worker creation and start() before try (worker) across core, serialization, interception, retry, dispatch, and worker behavior tests.
Resource lifecycle scenarios
sdks/java/src/test/java/org/byteveda/taskito/resources/*
Applies explicit worker scoping to resource reload and resource dependency tests, including nested cleanup around a worker startup failure.
Workflow and backend lifecycle refactor
sdks/java/src/test/java/org/byteveda/taskito/workflows/*, sdks/java/test-support/src/test/java/org/byteveda/taskito/test/*
Updates workflow, pub/sub, queue backend, and middleware tests to use pre-created workers with try-with-resources cleanup.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested labels: tests, rust

Suggested reviewers: kartikeya-27

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.75% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: refactoring the Java SDK to eliminate unused-variable warnings.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/java-unused-resource-vars

Comment @coderabbitai help to get the list of available commands.

@kartikeya-27
kartikeya-27 merged commit 9cad290 into master Jul 28, 2026
19 of 20 checks passed
@kartikeya-27
kartikeya-27 deleted the chore/java-unused-resource-vars branch July 28, 2026 17:38
@pratyush618 pratyush618 mentioned this pull request Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants