block / block/agent-task-queue

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

Aperta Adatta ai principianti
#34 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
68
Fork
7
Merge medio
51m
PR unite (30g)
1

Descrizione

## 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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Apri desktop-sidecar/build.gradle.kts e ispeziona il blocco nativeDistributions, quindi riproduci il problema con ./gradlew createDistributable e il comando AgentTaskQueueSidecar pacchettizzato indicato nell’issue. Il lavoro è completato quando il sidecar pacchettizzato completa la sua prima lettura del database senza la ClassNotFoundException di java.sql.Driver.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, kotlin, sqlite
Ambito
build-system, database, desktop
Tipo di issue
Bug
Difficoltà
1/5
Tempo stimato
Meno di un'ora
Stato di attività
Tranquilla
Chiarezza
Specificata chiaramente
Idoneità per principianti
85/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.