{"record":{"id":"16ad202d0d47c8c4","repo":"tursodatabase/turso","slug":"not-implemented-16ad20","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java","lineNumber":400,"sourceCode":"    return getAsciiStream(findColumn(columnLabel));\n  }\n\n  @Override\n  @SkipNullableCheck\n  public InputStream getUnicodeStream(String columnLabel) throws SQLException {\n    return getUnicodeStream(findColumn(columnLabel));\n  }\n\n  @Override\n  @SkipNullableCheck\n  public InputStream getBinaryStream(String columnLabel) throws SQLException {\n    return getBinaryStream(findColumn(columnLabel));\n  }\n\n  @Override\n  @SkipNullableCheck\n  public SQLWarning getWarnings() throws SQLException {\n    throw new UnsupportedOperationException(\"not implemented\");\n  }\n\n  @Override\n  public void clearWarnings() throws SQLException {\n    throw new UnsupportedOperationException(\"not implemented\");\n  }\n\n  @Override\n  public String getCursorName() throws SQLException {\n    throw new UnsupportedOperationException(\"not implemented\");\n  }\n\n  @Override\n  public ResultSetMetaData getMetaData() throws SQLException {\n    return this;\n  }\n\n  @Override","sourceCodeStart":382,"sourceCodeEnd":418,"githubUrl":"https://github.com/tursodatabase/turso/blob/bad083fafbefdeae9a42ec19bdaaad8918dcf411/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java#L382-L418","documentation":"ResultSet.getWarnings() in the Turso JDBC4 driver unconditionally throws UnsupportedOperationException('not implemented'). The JDBC contract says getWarnings() returns the warning chain or null when there are no warnings, so this is a driver gap rather than a data problem - SQLite-family engines do not surface SQLWarnings.","triggerScenarios":"Any direct call to rs.getWarnings() after executing a query, or indirect calls from generic JDBC wrappers, health checks, and verbose loggers that probe warnings after each statement.","commonSituations":"Code ported from xerial sqlite-jdbc or PostgreSQL drivers where getWarnings() returns null; shared JDBC utility classes; monitoring and tracing wrappers that log statement warnings.","solutions":["Remove the getWarnings() call - the engine produces no SQLWarnings to read","Catch UnsupportedOperationException and treat the outcome as 'no warnings' (null)","Contribute an implementation to bindings/java JDBC4ResultSet that returns null"],"exampleFix":"// before\nSQLWarning w = rs.getWarnings();\n\n// after\nSQLWarning w = null;\ntry {\n  w = rs.getWarnings();\n} catch (UnsupportedOperationException e) {\n  // driver does not track SQLWarnings\n}","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"SQLWarning w;\ntry {\n  w = rs.getWarnings();\n} catch (UnsupportedOperationException e) {\n  w = null; // driver tracks no warnings\n}","preventionTips":["Do not build logic that depends on SQLWarnings on SQLite-family drivers","Isolate driver capability gaps behind a small JDBC compatibility layer"],"tags":["java","jdbc","turso","sqlwarning","unsupported-operation"],"backgroundTag":"jdbc-driver-unsupported-operation","analyzedSha":"bad083fafbefdeae9a42ec19bdaaad8918dcf411","analyzedAt":"2026-08-16T23:12:11.798Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}