Skip to main content
Known Participant
March 3, 2013
Question

9.0.1 CHF3: Invalid branch target position offset for jsr[168](3)

  • March 3, 2013
  • 4 replies
  • 1571 views

Code worked fine on fully patched 9.0.1. Breaks only after installation of CHF3. The entirety of the breaking code:

<cffunction name="myFxn">

    <cfargument name="aCFC">

    <cfreturn CreateObject("component", "a_relative_path." & aCFC)>

</cffunction>

    This topic has been closed for replies.

    4 replies

    Inspiring
    March 4, 2013

    Did you also update your JVM to be Java 7?

    --

    Adam

    fedsolAuthor
    Known Participant
    March 4, 2013

    Adam Cameron:

    I didn't, it's still on 6.

    Inspiring
    March 4, 2013

    Adam Cameron:

    I didn't, it's still on 6.

    Hmmm. OK, well it's good info for Adobe to know. Did you put that on the bugbase ticket you raised too?

    --

    Adam

    fedsolAuthor
    Known Participant
    March 3, 2013

    Eventually the only way to get the code to run again as it did before CHF3 was to remove all cfscript blocks and write it as a big ugly pile of cfifs and cfsets.

    Anit_Kumar
    Inspiring
    March 4, 2013

    Hi,

    It shouldn't be the length of cfscript. Did you check the error in ColdFusion logs?

    Regards,

    Anit Kumar

    fedsolAuthor
    Known Participant
    March 4, 2013
    fedsolAuthor
    Known Participant
    March 3, 2013

    Wow, and, the news couldn't possibly be worse. This is an obvious compiler flaw. There seems to be a new hard limit on the length of cfscript blocks. Looks like they can't be more than 45 lines long. Here's a video demonstrating the problem in action. http://screencast.com/t/E1gqKDjc

    After finally diagnosing the flaw, I went to work on rewriting the affected code, but practically nothing I change makes this go away. I've got it throwing the jsr[168] error on just 2 lines of a = 1 alone in a cfscript block, which pretty clearly means I was wrong that it's the length of the cfscript that's the problem. It doesn't seem to be the length of the function either, since it works on some longer (incomplete) versions and fails on some shorter (incomplete) versions. I'm somewhat at a loss as to what the actual cause of the problem is, since no matter how I rewrite the affected code it keeps running into this error.

    To be clear, this is still a compile-time error (the code in question is not even called on the demonstration page) with code that worked fine prior to CHF3.

    fedsolAuthor
    Known Participant
    March 3, 2013

    Update: problem is the CFC being instantiated, not that innocuous little function above. Still trying to figure out what within the CFC is the problem.