java/code-interpreter/v1.0.14

opensandbox-group/OpenSandboxjava/code-interpreter/v1.0.14Jun 22, 2026by Pangjiping

AI Summary

Java Code Interpreter SDK receives the same snapshot readiness polling and bug fix capabilities as the main sandbox SDK.

Key Highlights

  • New `SandboxManager.waitForSnapshotReady()` method for blocking until snapshot is ready
  • Fixed `NullPointerException` in `replaceContents()` when verbose=false
  • Added batch multi-file `replaceContent` e2e test coverage for Go, Java, and C#

New Features

  • Snapshot readiness polling
  • Fixed `replaceContents()` crash

Full Release Notes

## What's New

### ✨ Features

- **Snapshot readiness polling** — New `SandboxManager.waitForSnapshotReady(snapshotId, timeout, pollingInterval)` method lets callers block until a snapshot reaches `Ready` state, replacing hand-rolled polling loops. Throws `SnapshotFailedException` on terminal failure and `SandboxReadyTimeoutException` on timeout. Java-friendly via `@JvmOverloads` with sensible defaults (15 min timeout, 2 s interval). Also introduces `SnapshotState` constants (`Creating` / `Ready` / `Failed` / `Deleting` / `Unknown`) so callers can compare states without magic strings. Pure client-side convenience — no server or spec changes required. (#1051)

### 🐛 Bug Fixes

- **`replaceContents()` empty-body crash** — Fixed `NullPointerException` when calling `replaceContents()` (verbose=false). The execd endpoint returns an empty HTTP 200 body in non-verbose mode, which the generated OpenAPI client failed to deserialize. The SDK adapter layer now catches the null cast so the replacement result is correctly treated as successful. Also refactored `replaceContentsDetailed()` to use the generated API client instead of hand-rolled HTTP. (#1094)

### 📦 Misc

- Added batch multi-file `replaceContent` e2e test coverage for both verbose and non-verbose paths (Go, Java, C# — matching existing Python/JS coverage). (#1094)

### 👥 Contributors

- @Pangjiping
- @ferponse