prestodb/presto · error · SQLException

No wrapper for

Error message

No wrapper for 

What it means

unwrap in PrestoResultSet returns this when isWrapperFor(iface) succeeds (i.e. iface.isInstance(this)); otherwise it throws this SQLException. It fires when application code requests a wrapper interface the PrestoResultSet does not implement — a generic JDBC unwrap guard with the requested class as the faulting input.

Source

Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java:1640

        throw new SQLFeatureNotSupportedException("getObject");
    }

    @Override
    public <T> T getObject(String columnLabel, Class<T> type)
            throws SQLException
    {
        throw new SQLFeatureNotSupportedException("getObject");
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T unwrap(Class<T> iface)
            throws SQLException
    {
        if (isWrapperFor(iface)) {
            return (T) this;
        }
        throw new SQLException("No wrapper for " + iface);
    }

    @Override
    public boolean isWrapperFor(Class<?> iface)
            throws SQLException
    {
        return iface.isInstance(this);
    }

    void partialCancel()
    {
        client.cancelLeafStage();
    }

    private void checkOpen()
            throws SQLException
    {
        if (isClosed()) {

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Only unwrap interfaces the PrestoResultSet actually implements (check isWrapperFor first)
  2. Cast to PrestoResultSet directly only if driver-specific APIs are needed
  3. Catch SQLException around unwrap when probing for optional interfaces
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java:1640 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/d9dda8c916052ded. Report an issue: GitHub.