From: | Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com> |
---|---|
To: | pgsql-jdbc(at)lists(dot)postgresql(dot)org |
Subject: | Re: Duplicate Proxy.newProxyInstance calls during PGXAConnection.getConnection? |
Date: | 2023-03-26 08:16:37 |
Message-ID: | CAKU4AWq-gwRS5FtVUqv-+vdRqi4HvF-=2gxZSFv-rOhnfWS-WA@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Please forgive me, I was totally wrong here. Sorry for the noise.
On Sun, Mar 26, 2023 at 3:16 PM Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com> wrote:
> In the PGXAConnection.GetConnection() [1], we can see the below code:
>
> @Override
> public Connection getConnection() throws SQLException {
>
> // *the first time ConnectionHandler has been created.*
> Connection conn = super.getConnection();
>
> // When we're outside an XA transaction, autocommit
> // is supposed to be true, per usual JDBC convention.
> // When an XA transaction is in progress, it should be
> // false.
> if (state == State.IDLE) {
> conn.setAutoCommit(true);
> }
>
> /*
> * Wrap the connection in a proxy to forbid application from fiddling with transaction state
> * directly during an XA transaction
> */
>
> // *ConnectionHandler is created again here. *
> ConnectionHandler handler = new ConnectionHandler(conn);
> return (Connection) Proxy.newProxyInstance(getClass().getClassLoader(),
> new Class[]{Connection.class, PGConnection.class}, handler);
> }
>
>
> However I think the proxy has already been created at the first line:
> super.getConnection(),
> and then it is created later. Is it a duplication?
>
> [1]
> https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java#L86
>
>
> --
> Best Regards
> Andy Fan
>
--
Best Regards
Andy Fan
From | Date | Subject | |
---|---|---|---|
Next Message | Matthew Bellew | 2023-03-26 22:23:01 | Parameter marker swapping in {fn timestampdiff()} |
Previous Message | Andy Fan | 2023-03-26 07:16:59 | Duplicate Proxy.newProxyInstance calls during PGXAConnection.getConnection? |