Copy link to clipboard
Copied
We had a application that was running fine in CF7.1. The server was recently upgraded to CF8 and we started getting the following errors:
Invalid method signature: /Variable;[Ljava/lang/String;)Ljava/lang/Object; null
Invalid method signature: ; )V null
unable to create new native thread null
Anybody got any ideas why I would not have problems in 7.1 but now have these errors in 8?
Copy link to clipboard
Copied
According to
http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:42597
and
http://groups.google.com/group/macromedia.coldfusion.cfml_general_discussion/browse_thread/thread/141919b886eab6c1/2331bff1c8e68e5c
it can be a problem with Evaluate. You can check for Evaluate calls,
remove them and see if it happens again (Evaluate is not necessary in
99% of the cases anyway).
Mack
Copy link to clipboard
Copied
This might be easier said than done. The application is using Fusebox 4.1, it uses the evaluate function in the fusebox4.parser.cfmx.cfm file.
Copy link to clipboard
Copied
In one of the references Mack gives, Macromedia's Stephen Dupre says,
We fixed this in 7.0.1 but the workaround would be to uncheck "Save Class Files" (and delete the /cfclasses directory).
The bug we logged is 59825. It was a sync issue with the evaluate() call - too technical to get into here. A public hotfix wasn't made available.
This fix made it into 7.0.1. You can call support to get the 6.1 hotfix or you can just use the workaround.
Could it be that your migration from MX7 to 8 doesn't include the fix?
Copy link to clipboard
Copied
You will probably get a good suggestion if you show the code that generates the error.
Copy link to clipboard
Copied
I am having issues with the Evaluate function under CF8.0.1 running on JRE version 1.4.2_11.
Here is the offending line:
<cfif Evaluate( 'COOKIE.search.#Hash('company'&salt)#' ) EQ "" >
Diagnostics:
null null <br>The error occurred on line 821.
Stack:
CF_SEARCH_PAGE(Line 1,0) \\our-server\our-path\search_page.cfm
>>>CF_CFPAGE(Line 821,0) \\our-server\our-path\search_page.cfm
Is there a hotfix available for this? Any suggestions on how to avoid throwing this error? Any help would be greatly appreciated.
Thanks!!
Copy link to clipboard
Copied
I am having issues with the Evaluate function under CF8.0.1 running on JRE version 1.4.2_11.
This caught my eye, and I didn't read the rest. Why use the 1.4 JVM when the default for Coldfusion 8 is Java 6?
Copy link to clipboard
Copied
Upgrading to Java 6 appears to have fixed the problem. It was a little shocking to discover that we were so far behind on Java. (**grumble grumble sub-par managed hosting environment grumble**) Thanks for pointing that out!!
We are also going through our code and removing the calls to Evaluate() just to be on the safe side.
I'd consider this issue solved, but I would like to give a little more detail here on some of the related issues for those who may come into the same problem.
It appeared that there was some sort of relationship between the 'maintain database connection' setting, and the type of error that we were throwing above. If the data source was set to maintain the connection, we would see the above 'null null' error. However, if the data source was not set to maintain the connection, we would throw an 'unable to create new native thread null' error. Both looked to be memory errors.
We ran a test for a few days with our two most requested data sources, one set to maintain database connections, and one not. Sure enough, we ended up throwing 'null null' errors on one, and 'thread null' errors on the other. After upgrading to Java 6, the 'null null' errors went away, and the 'thread null' errors were drastically reduced. This leads me to believe that it is best practice to maintain the database connections.
Thanks again for the help!
Copy link to clipboard
Copied
You may want to check out this site:
http://www.bryantwebconsulting.com/blog/index.cfm/2005/3/17/ditch_coldfusion_evaluate
Copy link to clipboard
Copied
you can always use array notation, if it's not fusebox generated.
'COOKIE.search.#Hash('company'&salt)#'
becomes
COOKIE.search[Hash('company'&salt)] or something like that.
Copy link to clipboard
Copied
Not sure it is helpful, but I have tons of Evaluate and DE code developed under Coldfusion 6.1 and Fusebox 3. It converted up with 7 and 8 just fine without errors and without needing to change the code. I always felt Fusebox 4 was a little bit of overkill, but maybe you should contact them if you are sure the eval's are in the core files.