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

Kathey Marsden updated DERBY-4264:
----------------------------------

    Attachment: derby-4264_10.2_diag_diff.txt

The attached diff derby-4264_10.2_diag_diff.txt has the 10.2 diagnostic changes 
that that I plan to send to the user that is seeing this issue.  They now have 
a test system where they can reproduce the failure after several days run and 
will run with this sane modified build.

This is *not* for commit.   The change will dump the class file and information 
about the GeneratedMethod and the object returned if 
orderableGetter.invoke(activation) returns an unexpected type object.   It also 
can be run with derby.debug.true=DERBY-4264_Always to always dump this 
information even if the expected type is returned.  Sample output in derby.log 
looks something like:
DEBUG orderableGetterInvoke(),orderableGetter OUTPUT: DirectCall: which=1(e1())

DEBUG orderableGetterInvoke(), orderableCacheObject OUTPUT: 
org.apache.derby.iapi.types.SQLChar:2be1347d-2001-0000-0080-8cd524f0d033

DEBUG orderableGetterInvoke(), this OUTPUT: columnId: 3
operator: 2
orderedNulls: false
unknownRV: false
negateCompareResult: false
variantType: 3

DEBUG ReflectGeneratedClass this.toString() OUTPUT: 
ReflectGeneratedClass.getName()=org.apache.derby.exe.ac601a400fx0122x1f0dx1cdax0000001f2c580
factoryClass=null

2009-06-27 00:11:09.500 GMT Thread[main,5,main] Wrote class 
org.apache.derby.exe.ac601a400fx0122x1f0dx1cdax0000001f2c580 to file 
.\ac601a400fx0122x1f0dx1cdax0000001f2c580.class

In order to dump the class file at this late point in processing I had to pass 
the ByteArray for the class data to LoadGeneratedClass  when it is created  so 
that the ByteArray is  preserved.  ( I didn't know how to get the byte code 
back out after it had been converted to a class with defineClass.  If the 
problem is actually in the conversion then we won't see that unless we can 
figure out a way to retreive the byte code directly from the class.

Please take a look and let me know if there is anything else useful that we 
could print out to help diagnose this issue.   There is some significant effort 
and time associated with getting a run so I want to avoid additional round 
trips if possible.


> highly intermittent java.lang.ClassCastException: 
> [[Lorg.apache.derby.iapi.store.access.Qualifier; incompatible with 
> org.apache.derby.iapi.types.DataValueDescriptor doing simple select
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4264
>                 URL: https://issues.apache.org/jira/browse/DERBY-4264
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.2.0
>         Environment: Embedded Derby  10.2.2.0 - (485682)
> z/OS  J2RE 1.5.0 IBM z/OS build pmz31dev-20081210 (SR9-0)
>            Reporter: Kathey Marsden
>            Assignee: Kathey Marsden
>         Attachments: acf81e0010x0121xcb69x9b94x0000000eb0100.java, 
> derby-4264_10.2_diag_diff.txt
>
>
> I got a report from a user for a highly intermittent ClassCastException doing 
> a select.  Below is the stack trace:
> java.lang.ClassCastException: 
> [[Lorg.apache.derby.iapi.store.access.Qualifier; incompatible 
> with org.apache.derby.iapi.types.DataValueDescriptor
>       at 
> org.apache.derby.impl.sql.execute.GenericQualifier.getOrderable(
> Unknown Source)
>       at 
> org.apache.derby.impl.sql.execute.NoPutResultSetImpl.clearOrdera
> bleCache(Unknown Source)
>       at 
> org.apache.derby.impl.sql.execute.BulkTableScanResultSet.openSca
> nController(Unknown Source)
>       at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(Un
> known Source)
>       at 
> org.apache.derby.impl.sql.execute.BulkTableScanResultSet.openCor
> e(Unknown Source)
>       at 
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(U
> nknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unkno
> wn Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown 
> Source)
> I don't have a reproduction yet but have some information on the schema and 
> query that occasionally fails:  The data here is contrived, I don't know the 
> actual data in the table at the time of the failure.  The column names have 
> changed, but represent the same types.
> CREATE TABLE "APP"."RESOURCE" 
>       (
>       "AUUID" CHAR(36) NOT NULL, 
>       "BUUID" CHAR(36) NOT NULL, 
>       "CUUID" CHAR(36) NOT NULL, 
>       "DUUID" CHAR(36) NOT NULL, 
>       "SECTION" CHAR(6) NOT NULL, 
>       "TYPE" CHAR(48) NOT NULL, 
>       "LASTUPDATE" TIMESTAMP NOT NULL
>       );
> ALTER TABLE "APP"."RESOURCE" ADD CONSTRAINT "SQL060817095529130" PRIMARY KEY 
> ("AUUID", "BUUID", "SECTION");
> -- Not sure of the actual data.  This data was made up so the query would get 
> a match.
> INSERT INTO RESOURCE VALUES ('3b2c2edc-1401-0000-0080-c38634aef3ba', 
> '3b2c2edc-1401-0000-0080-c38634aef3bb', 
> '2be1347d-2001-0000-0080-8cd524f0d034', 
> '2be1347d-2001-0000-0080-8cd524f0d033', 'GENRAL', 'NodeType', 
> CURRENT_TIMESTAMP);
> SELECT * FROM RESOURCE WHERE 
>       SECTION='GENRAL' AND 
>       TYPE='NodeType' AND 
>       DUUID='2be1347d-2001-0000-0080-8cd524f0d033' AND 
>       BUUID='3b2c2edc-1401-0000-0080-c38634aef3bb';
> This has happened to just one user on z/OS with J2RE 1.5.0 IBM z/OS build 
> pmz31dev-20081210 (SR9-0).  Other users running the same application on the 
> same versions have not seen this issue.  This particular user has disabled 
> the functionality causing the problem for now, so I am hoping we can glean 
> some information from code inspection and debugging this sample query to see 
> where the cast might go wrong.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to