db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-3870) Concurrent Inserts of rows with XML data results in an exception
Date Wed, 25 May 2011 09:33:47 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-3870:
--------------------------------------

    Attachment: d3870-3a.stat
                d3870-3a.diff

I'm attaching a new followup patch (3a) which removes the SqlXmlExecutor class. By doing this,
we avoid the allocation of one SqlXmlExecutor instance per row seen by an XML operator, and
we reduce the amount of code. We still cache the SqlXmlUtil instance in the activation so
that the XML queries only have to be compiled once per activation.

Since SqlXmlExecutor is just a thin wrapper around SqlXmlUtil and XMLDataType, the byte-code
generation for the XML operator could be changed to invoke the methods directly on the XMLDataValue
objects, passing the cached SqlXmlUtil instance as an argument. Apart from that, only small
changes were needed (changing the order and type of arguments in some method signatures where
SqlXmlExecutor and XMLDataValue differed, and adding some null handling previously performed
by SqlXmlExecutor to the XMLPARSE implementation).

All the regression tests passed with the patch.

> Concurrent Inserts of rows with XML data results in an exception
> ----------------------------------------------------------------
>
>                 Key: DERBY-3870
>                 URL: https://issues.apache.org/jira/browse/DERBY-3870
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.4.1.3, 10.4.2.1, 10.5.2.0, 10.6.1.0
>         Environment: System: MS windows server 2003 standard edition service pack 2.
Derby is run as a server on port 1527.
>            Reporter: Royi Ronen
>            Assignee: Knut Anders Hatlen
>              Labels: derby_triage10_5_2
>             Fix For: 10.9.0.0
>
>         Attachments: Copy of derby.log, DerbyMultiInsertXmlException.zip, d3870-1a.diff,
d3870-1a.stat, d3870-2a.diff, d3870-3a.diff, d3870-3a.stat, d3870-junit.diff
>
>
> We insert rows into a table using the following prepared statement (through JDBC):
> INSERT INTO USER1.PSTORE values(?,?, XMLPARSE(document CAST (? AS CLOB) preserve whitespace))
> where each of the ?'s are replaced with a string.
> One thread runs fine. Two or more result in the following exception: 
> org.apache.derby.client.am.SqlException: Java exception: 'FWK005 parse may not be called
while parsing.: org.xml.sax.SAXException'.
> 	at org.apache.derby.client.am.SqlException.<init>(Unknown Source)
> 	at org.apache.derby.client.am.SqlException.<init>(Unknown Source)
> We believe that this comes from the dBuilder.parse(InputSource) method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message