block / block/agent-task-queue

Packaged desktop sidecar crashes at first DB read: jlink image omits java.sql

Đang mở Phù hợp với người mới
#34 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
68
Fork
7
Merge trung bình
51 phút
Pull request đã merge (30 ngày)
1

Mô tả

## Summary

The packaged desktop sidecar produced by the README's documented package path (`./gradlew packageDistributionForCurrentOS`, or `createDistributable`) crashes on its first database read with `ClassNotFoundException: java.sql.Driver`. `./gradlew run` is unaffected because it runs on the full JDK.

## Environment

- macOS 15 (arm64), Temurin JDK 21.0.12
- repo at `ccb94ae25c2b286d62e7371fd4c0f7ce60e33efa`

## Reproduce

```bash
cd desktop-sidecar
./gradlew createDistributable
./build/compose/binaries/main/app/AgentTaskQueueSidecar.app/Contents/MacOS/AgentTaskQueueSidecar --data-dir /tmp/atq-repro
```

```
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: java/sql/Driver
at com.block.agenttaskqueue.sidecar.TaskQueueDatabase.(TaskQueueDatabase.kt:10)
...
Caused by: java.lang.ClassNotFoundException: java.sql.Driver
```

## Cause

`desktop-sidecar/build.gradle.kts`'s `nativeDistributions` block declares no `modules(...)`, so the jlink runtime image omits `java.sql` even though the project depends on `org.xerial:sqlite-jdbc` (3.53.0.0), which needs it at class-load time.

## Fix

One line in the `nativeDistributions` block:

```kotlin
modules("java.sql")
```

Happy to send the one-line PR if that's easier.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Open desktop-sidecar/build.gradle.kts and inspect the nativeDistributions block, then reproduce with ./gradlew createDistributable and the packaged AgentTaskQueueSidecar command from the issue. Done means the packaged sidecar completes its first database read without the java.sql.Driver ClassNotFoundException.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java, kotlin, sqlite
Lĩnh vực
build-system, database, desktop
Loại issue
Lỗi
Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
85/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.