[ 
https://issues.apache.org/jira/browse/DERBY-4835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12919398#action_12919398
 ] 

Mamta A. Satoor commented on DERBY-4835:
----------------------------------------

Wanted to mention that I have verified that the new test for trigger will fail 
as part of the upgrade suite if the accompanying code changes are not made. So, 
the patch has the needed test coverage for the code changes.

> 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
>         Attachments: 10_5_3_work.sql, 10_6_1_work.sql, 
> DERBY4835_patch1_diff.txt, workaround.sql
>
>
> 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.

Reply via email to