Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 86269 invoked from network); 4 Jun 2007 11:32:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Jun 2007 11:32:05 -0000 Received: (qmail 38936 invoked by uid 500); 4 Jun 2007 11:32:09 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 38715 invoked by uid 500); 4 Jun 2007 11:32:09 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 38702 invoked by uid 99); 4 Jun 2007 11:32:09 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jun 2007 04:32:09 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jun 2007 04:32:04 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id ECA6A714045 for ; Mon, 4 Jun 2007 04:31:43 -0700 (PDT) Message-ID: <30446525.1180956703965.JavaMail.jira@brutus> Date: Mon, 4 Jun 2007 04:31:43 -0700 (PDT) From: "Mayuresh Nirhali (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-2017) Client driver can insert and commit partial data when a LOB stream throws IOException or does not match the specified length In-Reply-To: <18308033.1162198636492.JavaMail.root@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12501180 ] Mayuresh Nirhali commented on DERBY-2017: ----------------------------------------- Thanks narayanan for your comments. As I mentioned earlier, this patch is incomplete. I was aware of 2) and 3) from your comments, but wanted to put up a prototype for this different approach, so that it is clear; hence the patch. But, with 1) that I missed, I see the challenges with this approach. Materializing large streams at client side is not preferred at all. However, length must be known in order to construct appropriate DSS. JDBC 3.0 spec hints that the length specified in setBinaryStream should be equal to the length of the stream. Validating this is preferred at Client side to avoid the cost of data transfer in such error cases. Making the behavior consistent with the embedded is tricky here due to the client-server nature. ... looking for more inputs. > Client driver can insert and commit partial data when a LOB stream throws IOException or does not match the specified length > ---------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-2017 > URL: https://issues.apache.org/jira/browse/DERBY-2017 > Project: Derby > Issue Type: Bug > Components: JDBC, Network Client > Affects Versions: 10.2.1.6 > Reporter: Knut Anders Hatlen > Assignee: Mayuresh Nirhali > Attachments: derby2017_try1.diff, Derby_2017_v1.diff, Derby_2017_v1.stat, StreamErrRepro.java > > > When a LOB stream throws an exception or does not match the specified length, the client driver does not raise an exception until it has finished executing the statement. Therefore, the statement will be executed (and possibly committed) on the server even though the client reports that the statement failed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.