Hi Lance,
Sorry for late response and thanks for your comment. You mean I can write a jtreg test case that connects to Java DB? I can do that.

Best regards,
Frank

On 11/13/2012 10:13 PM, Lance Andersen - Oracle wrote:
Hi Frank,


Thank you for the note
If you could in the future, please provide  a  complete test program to repro 
the issue as it would save time with the reviews.  Ideally if the issue is not 
database specific it would be good to leverage Java DB as it is included within 
Oracle JDK

I will look at this sometime this week

Best
Lance
On Nov 12, 2012, at 9:25 PM, Frank Ding wrote:

Hi Lance
  Thanks for your quick response.  Please find the bug info below.

  The problem:
  When CachedRowSetImpl.acceptChanges() is called, incorrect number of 
conflicts, if any, is reported.  The number of conflicts is the actual number 
of existing rows in database, which is the size of variable 'status' defined in 
CachedRowSetWriter.writeData().  It's not the conflict number that is supposed 
to be.

  Test case:
  The bug can be easily manifested in all SQL server environment. Here take 
PostgreSQL for example.
  1. The sql script to create a table
CREATE TABLE ressystem.roomdescription
(
  roomdescription_id serial NOT NULL,
  roomdescription character varying NOT NULL,
  CONSTRAINT roomdescription_pkey PRIMARY KEY (roomdescription_id)
)

  2.  Manually insert 3 rows
(1, "Test 1")
(2, "Test 2")
(3, "Test 3")

  3. Create a Java class that connects the established database and then 
execute the following code snippet.
String query = "select roomdescription_id, roomdescription from 
ressystem.roomdescription";
Object[] values = {2, "Test2"};
rs.setCommand(query);
rs.execute(conn);
rs.moveToInsertRow();
for(int i=0; i<values.length; i++) {
rs.updateObject(i+1,values[i]);
}
rs.insertRow();
rs.moveToCurrentRow();
rs.acceptChanges(conn);

  4. An exception occurs with following output.
javax.sql.rowset.spi.SyncProviderException: 4conflicts while synchronizing
    at 
com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:412)
    at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:880)

5. In fact, there is only one conflicting row but 4 were reported.

Best regards,
Frank

On 11/9/2012 7:41 PM, Lance Andersen - Oracle wrote:
Frank,

If you can please post the bug info here, I will take a look at your patch

Best
Lance
On Nov 8, 2012, at 10:01 PM, Frank Ding wrote:

Hi guys,
  We discovered a bug in CachedRowSetWriter.writeData method where incorrect 
number of conflicts is reported.  I searched in Oracle bug database and no 
similar record was found.  So I submitted a new one whose internal review ID is 
2376620.  A test case with code is illustrated in the bug submission that 
leverages PostgreSQL server but the issue is platform independent and easy to 
reproduce.
  I provided a patch review, available @
  http://cr.openjdk.java.net/~dingxmin/2376620/webrev.01/
  Is there anybody who is interested in patch and can also review bug 2376620?  
Your reply is appreciated.

Best regards,
Frank



Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
lance.ander...@oracle.com



Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
lance.ander...@oracle.com


Reply via email to