BUG #12319: NPE in JDBC driver when using PgCopyOutputStream
От | dhalperi@cs.washington.edu |
---|---|
Тема | BUG #12319: NPE in JDBC driver when using PgCopyOutputStream |
Дата | |
Msg-id | 20141222200403.11501.68819@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #12319: NPE in JDBC driver when using PgCopyOutputStream
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 12319 Logged by: Daniel Halperin Email address: dhalperi@cs.washington.edu PostgreSQL version: 9.3.1 Operating system: Ubuntu 14.04.1 LTS Description: This seems like a fairly natural use case, but it runs into a NullPointerException (NPE): 1. Create a PGCopyOutputStream 2. Write a bunch of data to it, and close the stream 3. Check the number of tuples that were successfully inserted. (full code snippet below). However, this use case results in a NullPointerException at line 162 -- because on OutputStream.close(), the PGCopyOutputStream sets the copyIn to null. CopyManager cpManager = ((PGConnection) jdbcConnection).getCopyAPI(); StringBuilder copyString = new StringBuilder().append("COPY ").append(quote(relationKey)).append(" FROM STDIN WITH BINARY"); CopyIn copyIn = cpManager.copyIn(copyString.toString()); PGCopyOutputStream out = new PGCopyOutputStream(Preconditions.checkNotNull(copyIn, "copyIn")); TupleWriter tw = new PostgresBinaryTupleWriter(out); tw.writeTuples(tupleBatch); tw.done(); // Causes a null pointer exception long inserted = out.endCopy(); >From what I can tell, there is currently no reliable way to get the number of tuples after closing the stream.
В списке pgsql-bugs по дате отправления: