[wirebox-1.5+] Error related to system/aop/tmp files

Has this gotten resolved and has anyone had any experience with the same thing happening in CF10 and IIS? I’m testing my first AOP code based on examples from some code Brad has provided and the documentation and I’m getting the same problem. I’ve doubled checked write privileges and security on the /tmp directory and everything “says” it should be writable, but I’m similarly told that java cannot write the file. One difference I might have over other tests is that in IIS I have created a virtual directory to my 3.5.2 installed coldbox, though in IIS I have inspected the properties and it should still be writable.

Anyone else?

That message isn’t telling you Java can’t write the file. It’s telling you that it can’t find the file. I raised this thread on the Railo list back in June:
https://groups.google.com/forum/?hl=en#!topicsearchin/railo/$20not$20found/railo/tlGl_SeeHzo

Micha asked me to put in a ticket so I put in this:
https://issues.jboss.org/browse/RAILO-3114

There does not appear to be any work done on the ticket yet. You should vote/comment on the ticket and also bug him on the Railo list :slight_smile:

The only known workaround right now is to comment out the line of code in WireBox that deletes the AOP temp files and then manually clean that directory yourself.

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Yes ColdFusion is having similar issues, please see the thread I posted last week, where Luis and Brad have not even bothered to comment on. Its like they are not interested in solving year old problems with Wirebox and CF in any way shape or form.

In case it got lost.

This is something that has been bothering me for nearly 4 years now, which to date has been no answer from here or even Adobe. This is specifically an issue that really needs to have a solution.

In the past I am seeing errors in my logs that look like this

datasource is not defined or null pointer errors.

I have tracked this back to ColdBox in the following location.

/**

  • Get the default application datasource
    */
    public string function getDefaultDatasource(){
    // get application metadata
    if( listFirst(server.coldfusion.productVersion,",") gte 10 ){
    var settings = getApplicationMetadata();
    }
    else{
    var settings = application.getApplicationSettings();
    }

// check orm settings first
if( structKeyExists( settings,“ormsettings”) AND structKeyExists(settings.ormsettings,“datasource”)){
return settings.ormsettings.datasource;
}
// else default to app datasource
return settings.datasource;
};

The actual error is coming from ColdFusion on the lines where it is setting the variable settings, so this is not a specific version of ColdFusion. But when you look deeper into the actual error, it appears to be an uncaught exception in the actual ColdFusion application itself.

If you read the Adobe ColdFusion documentation, it is supposed to return something always. So why it is returning NULL at times is really something that I am getting no love with from either Luis, Brad or any of the team from Ortis Solutions. Nor am I getting any love from Adobe when it comes to this error either.

Anyway, I have now reached another issue that seems to be totally related to this problem and WireBox itself. The actual error is this.

getLogoutUrl},RETURNTYPE={String},PARAMETERS={[Ljava.lang.Object;@42b4a8c1}}, {ACCESS={public},NAME={isEnabled},RETURNTYPE={Boolean},PARAMETERS={[Ljava.lang.Object;@62b3391d}}]},HINT={A library to build apps on Facebook.com and social websites with Facebook Connect},PATH={D:\home\somedomain\wwwroot\modules\cronus-facebook\model\sdk\FacebookApp.cfc},INHERITANCETRAIL={[modules.cronus-facebook.model.sdk.FacebookApp, modules.cronus-facebook.model.sdk.FacebookBase, WEB-INF.cftags.component]},TYPE={component}}},CONSTRUCTOR={init},METHOD={},ASPECT={false}}, Stacktrace: coldfusion.runtime.CustomException: Persistent scope is not available (by default session scope, so you must enable session management for this app) at coldfusion.tagext.lang.ThrowTag.doStartTag(ThrowTag.java:142) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799) at

What makes this annoying is that this usually only appears when the Application has been reloaded, but there are times where the server has to be restarted for it to go. What is causing this is not known, at least not by me anyway.

This is a Facebook SDK, that is being setup like this.

binder.map(“facebookSDK@fbModule”).to("#moduleMapping#.model.sdk.FacebookApp")
.initWith( appId = variables.settings.facebook.APP_ID, secretKey = variables.settings.facebook.SECRET_KEY );

binder.map(“FacebookGraphAPI@fbModule”).to("#moduleMapping#.model.sdk.FacebookGraphAPI")

.initWith( appId = variables.settings.facebook.APP_ID );

Nothing looks out of the ordinary here, so lets look at the constructor for this model.

public Any function init(required String appId, required String secretKey) {
if (!isPersistentDataEnabled()) {
throw(message=“Persistent scope is not available (by default session scope, so you must enable session management for this app)”, type=“UnvailablePersistentScope”);
}
super.init(arguments.appId);
setAppId(arguments.appId);
setSecretKey(arguments.secretKey);
return this;
}

Ok that explains the error message as it is catching the throw, but why is it being thrown and the following code gives the answer.

public Boolean function isPersistentDataEnabled() {
if (ListFirst(server.coldfusion.productversion,",") GTE 10) {
return getApplicationMetaData().sessionManagement; // CF10 compatible
} else {
return application.getApplicationSettings().sessionManagement;
}
}

Wow again it seems like this method is not 100% reliable, now the question is why is this the case?

So here is the question, I doubt this is an issue with the way it is being done, but something that ColdFusion itself is handling wrong. Is there anyone else out there who knows what is causing this and how to get around it, but more importantly is there a way we can get this to reliably happen 100% (I am able to get it about 10% of the time on a single user system, but 80% on a production system) that can get Adobe to look at this as a matter of urgency.

But the one thing that is common, all errors come from something being done in WireBox that is used as a property being Injected. I can’t find the original bug that was raised with Adobe, rest assured it has been in there hands since ColdFusion 10 was released.

Any help, suggestions would be appreciated.