JavaMySQL命名的管道连接在关闭时抛出警告

JavaMySQL命名的管道连接在关闭时抛出警告,java,mysql,jdbc,named-pipes,connector-j,Java,Mysql,Jdbc,Named Pipes,Connector J,我使用命名管道通过Connector/J连接到Java中的MySQL。我的连接和查询成功,但在尝试关闭连接时收到警告。我想知道除了删除connection.close()(或者删除try with resources连接块而不添加connection.close())之外,我应该做些什么来修复导致警告的原因 以下是我的查询代码: public static List<List> QueryDB(int RowValue) { List<Long> ValueLis

我使用命名管道通过Connector/J连接到Java中的MySQL。我的连接和查询成功,但在尝试关闭连接时收到警告。我想知道除了删除connection.close()(或者删除try with resources连接块而不添加connection.close())之外,我应该做些什么来修复导致警告的原因

以下是我的查询代码:

public static List<List> QueryDB(int RowValue) {
    List<Long> ValueList = new ArrayList();

        try {
            try (Connection Connection_T = MySQLConnectionResources.createConnection()) {
                try (Statement Statement_T = Connection_T.createStatement()) {
                    String String_T = "SELECT AColumn FROM ATable WHERE BColumn = " + RowValue + ";";
                    try (ResultSet ResultSet_T = Statement_T.executeQuery(String_T)) {
                        while (ResultSet_T.next()) {
                            ValueList.add(ResultSet_T.getLong("AColumn"));
                        }
                    }
                }
            }
        } catch(SQLException SQLException_P) {
            System.err.println("ERROR: Failed to query the database.");
            ValueList.clear();
        }

    List<List> Result_M = new ArrayList();
    Result_M.add(ValueList);
    return Result_M;
}
如果我删除try with resources块(并且不添加connection.close()),则警告永远不会出现。此外,如果我切换到TCP/IP连接,则不会出现错误。但是,这两种解决方案都不能满足我的情况。我希望确保连接正确关闭,并且我将使用命名管道连接

有什么想法吗

--(编辑)-- 另外:错误是由Connector/J中的日志引发的。我的错误捕获与错误捕获和打印的方式无关。我曾尝试研究如何禁用警告问题,并将其打印为严重问题(在Connector/J的日志中),但没有成功。此外,我希望修复警告问题,而不是忽略/隐藏它

--(编辑2)-- 我监控了MySQL数据库,连接没有被关闭。如果我使用TCP/IP连接字符串而不是我的命名管道连接字符串(并且不更改任何其他内容),则连接将正常关闭

--(编辑3)-- 忽略我的原始代码。。。只要尝试下面的代码,它就会抛出警告。对我来说好像是个虫子

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public final class main {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            conn =

DriverManager.getConnection("jdbc:mysql:///database?socketFactory=com.mysql.jdbc.NamedPipeSocketFactory&namedPipePath=\\\\.\\Pipe\\mysql.sock",
"root", "password");

            conn.close();


        } catch (SQLException ex) {
            // handle any errors
        }
    }
}

由于它似乎是一个bug,我已经向MySQL bug论坛提交了一份官方bug报告

每当我收到最新消息,我都会发回这里

更新:

我的bug报告是由MySQL编码人员分析的。他们认为这是一个JAVA bug


由于这似乎是一个bug,我已经向MySQL bug论坛提交了一份官方bug报告

每当我收到最新消息,我都会发回这里

更新:

我的bug报告是由MySQL编码人员分析的。他们认为这是一个JAVA bug

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public final class main {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            conn =

DriverManager.getConnection("jdbc:mysql:///database?socketFactory=com.mysql.jdbc.NamedPipeSocketFactory&namedPipePath=\\\\.\\Pipe\\mysql.sock",
"root", "password");

            conn.close();


        } catch (SQLException ex) {
            // handle any errors
        }
    }
}