Official Maintainer? [WAS: [transfer-dev] Coldfusion 10 and Transfer ORM?]

30 views
Skip to first unread message

Mark Mandel

unread,
Apr 1, 2014, 7:03:48 PM4/1/14
to transf...@googlegroups.com
Does someone want to step forward as an official maintainer of Transfer?

I still have the domain (but clearly it's currently broken), and I have the original documentation in HTML form on a turned off AWS server if anyone wants it, so if anyone wants to get Transfer on Github and become the official person, I'm happy to point everything to them and give them whatever help they need.

Just noticing a few of these 'Transfer is broken on N version of CF' threads, so dunno if someone wants to have all these mods and tweaks in a single place.

Mark


On Wed, Apr 2, 2014 at 3:04 AM, Janise Daylin <janise...@gmail.com> wrote:
Brian - thanks for the response.  I really appreciate it.

I wish I could split the costs for a facade for CF ORM but my company is cheap and they would rather I waste hours beating my head against the wall than fork over meager dollars to make my life easier.  (Sorry bitter today)

I don't have java installed on my CF Server - JVM comes installed with CF I believe - I see the CF admit settings for it.  But I don't have a separate Java install?  (Sorry I have limited server knowledge.)  Java isn't in the control panel where I'm familiar seeing it on other machines.  This server is Windows Server 2003.

And thank you for the code.  I updated it on my test server today.  I am now getting mostly errors that it's not able to find config files/items in config files (which exist).  No XML errors.  I don't know which is better.  

Janise  


On Mon, Mar 31, 2014 at 2:23 PM, Brian G <brian-...@vfive.com> wrote:

Janise, are you on Java 7 or Java 6?  I found Java 6 made my issues far less problematic but it still happens at least 50% of the time when I start up my app.  I just made some changes to this recently actually, here's what I have right now:


<cffunction name="search" hint="Searches the xml via an xpath" access="public" returntype="array" output="false">
    <cfargument name="xpath" hint="The xpath to search under" type="string" required="Yes">
    <cfscript>
        var results = ArrayNew(1);
        var res = arrayNew(1);
        var len = arrayLen(getXMLCollection());
        var counter = 1;
        var collection = getXMLCollection();
        var path = "";
        var p = "";

        for(; counter lte len; counter = counter + 1)

        {
            try
            {
                results.addAll(xmlSearch(collection[counter], arguments.xpath));
            }
            catch (any ex)
            {
                // ok, let's serialize the XML as it exists so we can capture it
                writeLog(type="Error", file="transfer-xml", text="Failed to XMLSearch(#arguments.xpath#) in XMLFileReader.cfc due to: [#ex.type#] #ex.message#, check transfer-xml.serialized for a string representation of the XML file");
                writeLog(type="Error", file="transfer-xml-serialized", text = toString(collection[counter]));


                // flush the XML and try again
                path = listToArray(getPathList());
                setXMLCollection(arrayNew(1));
                setPathList("");

                for (p in path)
                {
                    writeLog(type="Error", file="transfer-xml", text="Readding XML: #p#...");
                    addXML(p, true);
                }

                // get updated collection
                collection = getXMLCollection();
                // run search again, it SHOULD be there this time
                res = (isArray(collection) AND arrayLen(collection) ? xmlSearch(collection[1], arguments.xpath) : 0);
                writeLog(type="Error", file="transfer-xml", text="Reloaded #arrayLen(path)# files, tried again against #arrayLen(collection)# files, found #arrayLen(res)# matches.");

                // now re-search the XML
                results.addAll(res);
            }
        }

        return results;
    </cfscript>
</cffunction>


Mostly logging, but critically, the addXML(p, true), the true overwrites what was there before, which clears out the broken ones. 

I've got a guy who has offered to build a facade for CF ORM that presents the same interface as Transfer.  It has been a back burner project for me but if someone else wanted to split the cost, I could prioritize it.  Goal would be to provide a drop-in replacement that would use CF ORM under the hood but not require any code changes.  I presume some configuration change may be required but the getIsPersisted(), the relationships, etc... could all implement the same interface.


Brian





On Monday, March 31, 2014 12:13:10 PM UTC-7, Janise Daylin wrote:
I am a year late - but running into a similar issue.  Went from CF8 with Transfer to CF10 with Transfer until I can get time to redesign.  Getting "requested object could not be found in the config file" (when it exists) or "unable to process the result of the XMLSearch".  If I refresh the page 2-12 times the errors disappear.  I tried the try/catch in XMLFileReader but that didn't resolve the errors.  I have a ticket open with Adobe but would love insight from anyone else that's resolved the issue or might give me some hints on where to look to resolve it.

Janise

On Wednesday, April 3, 2013 7:05:27 PM UTC-6, Brian G wrote:

That is where I'm doing it - but I wanted to test in prod that reloading the XML did indeed fix the problem, and it did.

Here's what I wound up with in XMLFileReader.cfc:

try
{
    results.addAll(xmlSearch(collection[counter], arguments.xpath));
}
catch (any ex)
{
    // flush the XML and try again
    setXMLCollection(arrayNew(1));
    path = listToArray(getPathList());

    for (p in path)
    {
        addXML(p);
    }

    writeLog(type="Error", file="transfer-xml", text="Failed to XmlSearch(#arguments.xpath#) in XMLFileReader.cfc, reloaded #arrayLen(path)# XML Files, trying again against #arrayLen(getXMLCollection())# loaded configurations... [#ex.type#] #ex.message#");

    // now re-search the XML
    results.addAll(xmlSearch(collection[counter], arguments.xpath));
}

I think that will do the trick for this particular issue.  I mean, it will work around whatever is really going on, at least for now.  Fingers crossed.


On Wednesday, April 3, 2013 2:32:13 PM UTC-7, Mark Mandel wrote:
Why not do the try catch in here:

LIne 42 of the search?

Rather than outside?

Mark


On Thu, Apr 4, 2013 at 3:30 AM, Brian G <brian-...@vfive.com> wrote:

On Tuesday, April 2, 2013 8:47:51 PM UTC-7, Mark Mandel wrote:
Try/catch inside the XMLFileReader - if it overflows, then load up the path again. It knows where the XML file is, so it can always try it again.

That did it... on my wedged future production server, first I ran the code that generated the stack overflow - still failed.  Then I ran this:


<cfset orm = application.cs.getBean("ormService") />
<cfset xmlFileReader = orm.getTransfer().getObjectManager().getObjectDAO().getConfigReader() />
<cfdump var="#arrayLen(xmlFileReader.getXMLCollection())#" label="pre-reload, num of xml files" />
<cfset xmlFileReader.addXML('/var/www/pukka/main-prod/config/transfer/transfer.xml', true) />
<cfdump var="#arrayLen(xmlFileReader.getXMLCollection())#" label="post-reload, num of xml files" />

Then I re-ran the borked code and actually it still failed.  The overwrite flag true here doesn't overwrite it only prepends to the array of XML files so the search still failed when it hit the original, somehow jacked up, XML file.  I manually killed it with arrayDeleteAt(getXMLCollection(), 2) and then re-ran my error-generating code and it worked fine.

I'm not sure how to report this... clearly something is fubar'd and it looks like a bug in CF but it's not reproducible in the traditional sense.  For now, I'm going to wrap the xmlsearch with a try/catch and see if that works? 

Thanks for the help Mark.


--
--
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer
 
Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8
 
You received this message because you are subscribed to the Google Groups "transfer-dev" group.
To post to this group, send email to transf...@googlegroups.com
To unsubscribe from this group, send email to transfer-dev...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en
 
---
You received this message because you are subscribed to the Google Groups "transfer-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to transfer-dev...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
E: mark....@gmail.com
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

2 Devs from Down Under Podcast

--
--
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer
 
Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8
 
You received this message because you are subscribed to the Google Groups "transfer-dev" group.
To post to this group, send email to transf...@googlegroups.com
To unsubscribe from this group, send email to transfer-dev...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en

---
You received this message because you are subscribed to a topic in the Google Groups "transfer-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/transfer-dev/82Nx3lbNEyE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to transfer-dev...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
--
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer
 
Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8
 
You received this message because you are subscribed to the Google Groups "transfer-dev" group.
To post to this group, send email to transf...@googlegroups.com
To unsubscribe from this group, send email to transfer-dev...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en

---
You received this message because you are subscribed to the Google Groups "transfer-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to transfer-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
E: mark....@gmail.com
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

2 Devs from Down Under Podcast

Sean Coyne

unread,
Apr 16, 2014, 8:56:10 AM4/16/14
to transf...@googlegroups.com
If it is any help, I've imported the SVN history from the Riaforge SVN into a Github repo. 


I'm happy to merge any pull requests I receive.

Brian G

unread,
Jul 11, 2014, 12:51:52 PM7/11/14
to transf...@googlegroups.com

So did Sean take over the project?  :)

Sean Coyne

unread,
Jul 11, 2014, 7:51:22 PM7/11/14
to transf...@googlegroups.com
I'm happy to merge pull requests.
Reply all
Reply to author
Forward
0 new messages