coldbox-modules / cfmigrations

MIT License
11 stars 8 forks source link

ACF11: MigrationsService.cfc throws java.lang.ClassCastException exception. #7

Closed MordantWastrel closed 6 years ago

MordantWastrel commented 6 years ago

On bootstrap:

The CFML compiler encountered an unexpected java.lang.ClassCastException exception.

The reason for this was: coldfusion.compiler.ASTtagAttribute cannot be cast to coldfusion.compiler.ExprNode Occurred at:java.lang.ClassCastException:

coldfusion.compiler.ASTtagAttribute cannot be cast to coldfusion.compiler.ExprNode at coldfusion.compiler.ExprVisitor.insertCast(ExprVisitor.java:210) at coldfusion.compiler.ExprVisitor.call(ExprVisitor.java:610) at coldfusion.compiler.ExprVisitor.transform(ExprVisitor.java:83) at coldfusion.compiler.Treewalker.postorder(Treewalker.java:100) at coldfusion.compiler.Treewalker.postorder(Treewalker.java:82) at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27) at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27) at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27) at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:459) at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:391) at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:160) at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:467) at coldfusion.util.LruCache.get(LruCache.java:180) at col...   The error occurred in /app/inleague/modules/cfmigrations/models/MigrationService.cfc: line 60Called from /app/inleague/coldbox/system/core/util/Util.cfc: line 287Called from /app/inleague/coldbox/system/ioc/config/Mapping.cfc: line 604Called from /app/inleague/coldbox/system/ioc/config/Mapping.cfc: line 614Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 1013Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 1008Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 319Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 527Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 481Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 476Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 422Called from /app/inleague/coldbox/system/web/services/LoaderService.cfc: line 57Called from /app/inleague/coldbox/system/bootstrap.cfc: line 98Called from /app/inleague/Application.cfc: line 158Called from /app/inleague/coldbox/system/core/util/Util.cfc: line 287Called from /app/inleague/coldbox/system/ioc/config/Mapping.cfc: line 604Called from /app/inleague/coldbox/system/ioc/config/Mapping.cfc: line 614Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 1013Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 1008Called from /app/inleague/coldbox/system/ioc/config/Binder.cfc: line 319Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 527Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 481Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 476Called from /app/inleague/coldbox/system/web/services/ModuleService.cfc: line 422Called from /app/inleague/coldbox/system/web/services/LoaderService.cfc: line 57Called from /app/inleague/coldbox/system/bootstrap.cfc: line 98Called from /app/inleague/Application.cfc: line 158

elpete commented 6 years ago

Can you give me an example repo to reproduce this please?

MordantWastrel commented 6 years ago

I am on vacation until 8/4 but will look into this when I return.

elpete commented 6 years ago

Did you have a chance to create a reproduction of this issue?

MordantWastrel commented 6 years ago

I was able to spend about 30 minutes on this today - not enough to package an isolated repro case but I think the culprit is simple:

MigrationsService.cfc line 60:

directoryList( path = expandPath( migrationsDirectory ), listInfo = "query" );

This is not valid syntax in ACF11 and this line in isolation will cause the following exception:

Parameter validation error for the DIRECTORYLIST function. A built-in ColdFusion function cannot accept an assignment statement as a parameter, although it can > accept expressions. For example, DIRECTORYLIST(d=a*b) is not acceptable.