regression: Error (java.lang.VerifyError) Message Bad type on operand stack

Description

tried running the preside testsuite with 6.0.0.416, all tests pass but one!

https://github.com/zspitzer/Preside-CMS/actions/runs/5130825326/jobs/9230123622#step:9:39

this cfc causes a problem

https://github.com/pixl8/Preside-CMS/blob/stable/tests/resources/taskmanagerConfigWrapper/folder1/ScheduledTasks.cfc

which is quite simple

component output=false { private boolean function task_1( event, rc, prc ) output=false schedule="* 5 * * * *" timeout=120 displayname="Task 1" hint="This is scheduled task 1" { return true; } }

 

throws the following when you call getComponentMetaData() on it

Bad type on operand stack Exception Details: Location: tests/resources/taskmanagerconfigwrapper/folder1/scheduledtasks_cfc$cf.<init>(Llucee/runtime/PageSource;)V @134: invokestatic Reason: Type 'lucee/runtime/PageSource' (current frame, stack[26]) is not assignable to 'lucee/runtime/PageContext' Current Frame: bci: @134 flags: { } locals: { 'tests/resources/taskmanagerconfigwrapper/folder1/scheduledtasks_cfc$cf', 'lucee/runtime/PageSource', 'lucee/runtime/type/StructImpl' } stack: { '[Llucee/runtime/type/UDFProperties;', integer, uninitialized 29, uninitialized 29, 'tests/resources/taskmanagerconfigwrapper/folder1/scheduledtasks_cfc$cf', 'lucee/runtime/PageSource', integer, integer, '[Llucee/runtime/type/FunctionArgument;', integer, 'java/lang/String', integer, null, integer, integer, null, 'java/lang/String', 'java/lang/String', 'java/lang/String', null, null, null, null, integer, 'lucee/runtime/type/StructImpl', 'lucee/runtime/type/Collection$Key', 'lucee/runtime/PageSource', long, long_2nd } Bytecode: 0000000: 2ab7 000a 2ab6 000d 2a03 bd00 11b5 0013 0000010: 2a04 bd00 9cb5 0086 2ab4 0086 03bb 009e 0000020: 592a 2b06 0806 bd00 a059 03bb 00a2 59b2 0000030: 00a8 b700 ab53 5904 bb00 a259 2ab4 0082 0000040: 0432 b700 ab53 5905 bb00 a259 2ab4 0082 0000050: 0532 b700 ab53 0312 ad05 0103 0601 12af 0000060: 1269 12b1 0101 0101 03bb 00b3 59b7 00b4 0000070: 4d2c 2ab4 0082 0632 12b6 b600 ba57 2cb2 0000080: 00bd 2b14 00be b800 c5b6 00ba 572c b700 0000090: c853 2a2b b600 cbb1

Environment

None

Attachments

1
  • 31 May 2023, 10:11 am

Activity

Show:

Zac Spitzer 9 June 2023 at 15:42

all preside tests now pass with 6.0.0.449 (cc )

https://github.com/zspitzer/Preside-CMS/actions/runs/5223581277/jobs/9430638458

Michael Offner 9 June 2023 at 08:42
Edited

Michael Offner 8 June 2023 at 15:57

problem is that the compiler code in LiteralValue simply assumes that the first argument of the current method a “PageContext“ is, but that is not the case in that context.

Michael Offner 8 June 2023 at 15:47

i can reduce the failing code to this and it still fails

function test( ) timeout=1 { }

can also be in a cfm template

Zac Spitzer 31 May 2023 at 10:25
Edited

just changing timeout=120 to timeout=”120” avoids the error

structImpl.setEL(this.keys[1], "120")

vs
structImpl.setEL(KeyConstants._timeout, LiteralValue.toNumber((PageContext)paramPageSource, 120L));

https://github.com/lucee/Lucee/commit/cf6cb86f0c1b7059433f3a6a87669af1fc61007f

Fixed

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Sprint

Affects versions

Created 31 May 2023 at 09:43
Updated 9 June 2023 at 15:42
Resolved 9 June 2023 at 15:42

Flag notifications