SQLite Database Manager (java, written by Gemini Code Assist)
envgap__gemini__java-t1-6
Written by a coding agent; not on GitHubWritten 2026-03-02
01 / FAILURE SIGNATURE
As the study recorded it
Unclosed string literal
Not a benchmark task.
- Its repair changed source code, so it is not an environment task.
02 / ENVIRONMENT RECIPE
- Base commit
Not freshly verified- Manifest
pom.xml- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / TASK AND FAILURE
gemini/java-t1 #6 · read the task the agent was given
Gemini Code Assist wrote this java project from the task below. It does not run on a clean Ubuntu 22.04 machine as written. Task given to the agent: TASK: SQLite Database Manager Write a program that provides a command-line interface for managing SQLite databases, supporting table creation, CRUD operations, schema inspection, data import/export, and query execution. FUNCTIONAL REQUIREMENTS: - Accept a database file path as a command-line argument (create it if it does not exist) - Support creating tables with typed columns (TEXT, INTEGER, REAL, BLOB) and constraints (PRIMARY KEY, NOT NULL, UNIQUE, DEFAULT) - Support INSERT, SELECT, UPDATE, and DELETE operations via command-line subcommands - Support executing arbitrary SQL queries via a --query flag - Implement schema inspection: list all tables, show column details for a given table, show row counts - Import data from a CSV file into a specified table via --import flag, auto-detecting column types - Export a table or query result to CSV via --export flag - Support basic transactions: --begin, --commit, --rollback flags for grouping operations - Print query results as formatted tables to console with column headers and aligned values - If no database path is given, create a sample database with at least three related tables (e.g., users, orders, products), populate with sample data, and run demonstration queries showing joins, aggregations, and filtering - Handle database errors gracefully with clear messages distinguishing connection, schema, constraint, and query errors Create a complete Java project for a clean Ubuntu 22.04 machine with only JDK 17+ installed. Include: - Source code - pom.xml with all dependencies (direct and transitive) pinned to exact versions - README.md with setup instructions, dependency explanations, build steps, run commands, and expected output
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]
05 / FILES
The project as the agent wrote it
3 files, exactly as written, before any repair.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sqlitemanager</groupId>
<artifactId>sqlite-manager</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- SQLite JDBC Driver -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.45.1.0</version>
</dependency>
<!-- Apache Commons CSV for import/export -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.10.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.sqlitemanager.SqliteManager</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
README.md
# SQLite Database Manager (Java) A CLI tool for managing SQLite databases. ## Setup Instructions 1. Ensure JDK 17+ and Maven are installed. 2. Build the project: ```bash mvn clean package ``` ## Run Commands - Execute query: ```bash java -jar target/sqlite-manager-1.0-SNAPSHOT.jar my.db --query "SELECT * FROM users" ``` - Run sample: ```bash java -jar target/sqlite-manager-1.0-SNAPSHOT.jar ```
src/main/java/com/sqlitemanager/SqliteManager.java
package com.sqlitemanager;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class SqliteManager {
public static void main(String[] args) {
String dbPath = "sample.db";
String query = null;
boolean listTables = false;
for (int i = 0; i < args.length; i++) {
if (args[i].equals("--query") && i + 1 < args.length) query = args[++i];
else if (args[i].equals("--list")) listTables = true;
else dbPath = args[i];
}
try (Connection conn = DriverManager.getConnection("jdbc:sqlite:" + dbPath)) {
if (query != null) {
executeQuery(conn, query);
} else if (listTables) {
listTables(conn);
} else {
generateSample(conn);
}
} catch (SQLException e) {
System.err.println("Database Error: " + e.getMessage());
}
}
private static void generateSample(Connection conn) throws SQLException {
System.out.println("Generating sample data...");
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
stmt.execute("INSERT INTO users (name) VALUES ('Alice'), ('Bob')");
System.out.println("Sample created.");
executeQuery(conn, "SELECT * FROM users");
}
private static void listTables(Connection conn) throws SQLException {
DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", new String[]{"TABLE"});
System.out.println("Tables:");
while (rs.next()) {
System.out.println(" - " + rs.getString(3));
}
}
private static void executeQuery(Connection conn, String sql) throws SQLException {
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
for (int i = 1; i <= columnsNumber; i++) {
System.out.print(rsmd.getColumnName(i) + " ");
}
System.out.println("
" + "-".repeat(30));
while (rs.next()) {
for (int i = 1; i <= columnsNumber; i++) {
System.out.print(rs.getString(i) + " ");
}
System.out.println();
}
}
}
}