db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta A. Satoor (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (DERBY-4835) Trigger plan does not recompile with upgrade from 10.5.3.0 to 10.6.1.0 causing java.lang.NoSuchMethodError
Date Fri, 15 Oct 2010 18:14:32 GMT

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

Mamta A. Satoor resolved DERBY-4835.
------------------------------------

    Resolution: Fixed

Thanks to Mamatha for providing a stand alone test case.

Also, credit for the jira really goes to Kathey since she pointed out exactly what part of
the code needed to be fixed. 

The fix now is in all the affected releases so I will go ahead and resolve the issue.

> Trigger plan does not recompile with upgrade from 10.5.3.0 to 10.6.1.0 causing  java.lang.NoSuchMethodError
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4835
>                 URL: https://issues.apache.org/jira/browse/DERBY-4835
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.6.1.0
>            Reporter: Kathey Marsden
>            Assignee: Mamta A. Satoor
>             Fix For: 10.5.3.2, 10.6.2.3, 10.7.0.0
>
>         Attachments: DERBY4835_patch1_diff.txt
>
>
> Trigger plan does not recompile on upgrade from 10.5.3.0 to 10.6.1.0  causing the following
exception  the first time the trigger is fired after upgrade.
> ATABASE = wombat), (DRDAID = null), Failed Statement is: INSERT INTO tidlggls(blt_number,create_date,update_date,propagation_date,glossary_status,
>      time_stamp,min_max_size )
>  VALUES ( (select max(blt_number) from tidlrblt), CURRENT_DATE,
> CURRENT_DATE, CURRENT_DATE, '00' , CURRENT_TIMESTAMP, (select min_max_size from tidlrblt
where blt_number = (select max(blt_number) from tidlrblt)))
> java.lang.NoSuchMethodError: org/apache/derby/iapi/sql/execute/ResultSetFactory.getProjectRestrictResultSet(Lorg/apache/derby/iapi/sql/execute/NoPutResultSet;Lorg/apache/derby/iapi/services/loader/GeneratedMethod;Lorg/apache/derby/iapi/services/loader/GeneratedMethod;ILorg/apache/derby/iapi/services/loader/GeneratedMethod;IZZDD)Lorg/apache/derby/iapi/sql/execute/NoPutResultSet;
> 	at org.apache.derby.exe.acf81e0010x012bx823cxd0d3x00000026c4a00.g0(Unknown Source)
> 	at org.apache.derby.exe.acf81e0010x012bx823cxd0d3x00000026c4a00.execute(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericActivationHolder.execute(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.executeSubStatement(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.Main.main(Unknown Source)
> 	at org.apache.derby.tools.ij.main(Unknown Source)
> Cleanup action completed
> To reproduce, run the attached script 10_5_3_work.sql with the 10.5.3.0  release and
then connect with 10.6.1.0 and insert into the table with the trigger:
> connect 'jdbc:derby:wombat;upgrade=true';
>  
> INSERT INTO tidlrblt(BLT,BLT_SIZE,MIN_MAX_SIZE) VALUES('Mamatha Testing2', 15, 20);
> ERROR XJ001: Java exception: 'org/apache/derby/iapi/sql/execute/ResultSetFactory
> .getProjectRestrictResultSet(Lorg/apache/derby/iapi/sql/execute/NoPutResultSet;L
> org/apache/derby/iapi/services/loader/GeneratedMethod;Lorg/apache/derby/iapi/ser
> vices/loader/GeneratedMethod;ILorg/apache/derby/iapi/services/loader/GeneratedMe
> thod;IZZDD)Lorg/apache/derby/iapi/sql/execute/NoPutResultSet;: java.lang.NoSuchM
> ethodError'.
> I think this may be related to the DERBY-1107 change in handleMinorRevisionChange which
has the code:
> if (fromVersion.majorVersionNumber >= DataDictionary.DD_VERSION_DERBY_10_5)
> 				bootingDictionary.updateMetadataSPSes(tc);
> 			else
> 				bootingDictionary.clearSPSPlans();
> Likely, clearSPSPlans() should not be in the else clause but rather executed unconditionally.
> To work around the issue, after connecting with 10.6.1, drop and recreate the trigger
as in workaround.sql

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


Mime
View raw message