Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Brian, Want to take on ownership of Transfer? Seems like you're going to end up doing it anyway :) mark On Sat, Jul 12, 2014 at 9:15 AM, Brian G brian-goo...@vfive.com wrote: This is a long running thread but I came across some recent updates on why Transfer (under load like on init) may be crapping out reliably: http://cfmlblog.adamcameron.me/2014/04/ye-olde-xmlsearche-bugge.html What Adam describes is exactly the error I get in XMLFileReader when it blows up. Errors like: Failed to XMLSearch(/transfer/objectDefinitions/package[@name='theme']/object[@name='filter']) in XMLFileReader.cfc due to: [Expression] Unable to process the result of the XMLSearch for ''. I couldn't wrap my head around how it had an Xpath search but thought it was ''. What's interesting is that Model-Glue has a similar XML loader but it is single threaded on startup so it doesn't manifest itself there. Here's the source issue which was described as far back as 2008: http://house-of-fusion.10909.n7.nabble.com/XMLSearch-not-thread-safe-td65967.html And here is the Adobe bugbase issue for the xmlSearch wackiness: https://bugbase.adobe.com/index.cfm?event=bugid=3739102 I have long considered rewriting the Transfer config file from XML to JSON due to the XML errors and it looks like this would work. Another option would be to perform a duplicate() on the XML before running xmlSearch which fixes the problem (but introduces a performance problem) in the house of fusion thread. You would add it here in XMLFileReader.cfc: results.addAll(xmlSearch(duplicate(collection[counter]), arguments.xpath)); In my limited testing, it appears that xmlSearch() on the config is only done the first time a particular object is instantiated. On my local laptop with a 1330-line XML file, the duplicate() takes 4-7ms. I'm going to push to production and see if this solves my issues but based on Adam Cameron's test case, it sounds like it does. While I have no hair left, I'm sure glad to see there really is an issue. Now I'm just pissed that for 4+ years Adobe has allowed something like this to exist. :\ Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
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-goo...@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 =
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
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: http://transfer.riaforge.org/index.cfm?event=page.svnviewpath=%2Ftransfer%2Ftrunk%2Fcom%2Fiofile=XMLFileReader%2Ecfc 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. http://www.2ddu.com/ 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 http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
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: http://transfer.riaforge.org/index.cfm?event=page.svnviewpath=%2Ftransfer%2Ftrunk%2Fcom%2Fiofile=XMLFileReader%2Ecfc 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
Re: Be careful of Java 7 upgrades, was Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Interesting! Mark On Thu, Apr 18, 2013 at 3:40 AM, Brian G brian-goo...@vfive.com wrote: Just a note to all - the errors I have been experiencing have all been on Java 7 with CF10. I downgraded to Java 6 on a hunch and for the last week I have not had a single error. My issues were random so I couldn't build a simple test case that would trigger it but I could reliably probe it once it had broken and demonstrate that XML objects in memory or XMLSearches against objects in persisted scopes were getting corrupted/lost. I would be VERY cautious about upgrading any CF10 applications using Transfer/Coldspring/Model-Glue or other XML-dependent apps to Java 7 on CF10. Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
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. http://www.2ddu.com/ 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Why not do the try catch in here: http://transfer.riaforge.org/index.cfm?event=page.svnviewpath=%2Ftransfer%2Ftrunk%2Fcom%2Fiofile=XMLFileReader%2Ecfc LIne 42 of the search? Rather than outside? Mark On Thu, Apr 4, 2013 at 3:30 AM, Brian G brian-goo...@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. http://www.2ddu.com/ 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Ah cool! Hope it works for you! MArk On Thu, Apr 4, 2013 at 12:05 PM, Brian G brian-goo...@vfive.com 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: http://transfer.riaforge.org/**index.cfm?event=page.svnview** path=%2Ftransfer%2Ftrunk%**2Fcom%2Fiofile=XMLFileReader%**2Ecfchttp://transfer.riaforge.org/index.cfm?event=page.svnviewpath=%2Ftransfer%2Ftrunk%2Fcom%2Fiofile=XMLFileReader%2Ecfc 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. http://www.2ddu.com/ 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-**transferhttp://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:**2s7wbd5ocb8http://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=enhttp://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_outhttps://groups.google.com/groups/opt_out . -- E: mark@gmail.com T: http://www.twitter.com/**neurotic http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en --- You
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
What's the actual error you get from Transfer when trying to create the object? Seems like the error from the XML dump may be a red herring. Mark On Tue, Apr 2, 2013 at 8:15 AM, Brian G brian-goo...@vfive.com wrote: Ok, so I let the app run for a few days and now I'm getting errors while trying to basically instantiate Transfer objects. I've made some changes to public/private packaging so I can get at the Transfer configuration and here's what's happening: cfset orm = application.cs.getBean(ormService) / cfset t = orm.getTransfer() / cfset objMgr = t.getObjectManager() / cfset to = objMgr.getObject(event.event) / cfdump var=#t.getObjectManager().getObjectGateway().listClasses()# label=array of classes in definitions / cfset objDAO = objMgr.getObjectDAO() / cfset empty = objMgr.createEmptyObject() / cfset objDAO.getObject(empty, event.event) / cfset xmlFileReader = objDAO.getConfigReader() / cfset xml = xmlFileReader.getXMLCollection() / cfdump var=#xml# label=shows the XML in memory read by transfer top=1 / I can get up to the point where I getXMLCollection(). As soon as I try to navigate it with cfdump or anything else, I get a very terse err with a stack overflow: Stack Trace java.lang.StackOverflowError at net.sf.saxon.serialize.XMLEmitter.writeCharSequence(XMLEmitter.java:652) at net.sf.saxon.serialize.XMLEmitter.writeEscape(XMLEmitter.java:745) at net.sf.saxon.serialize.XMLEmitter.characters(XMLEmitter.java:591) at net.sf.saxon.serialize.UncommittedSerializer.characters(UncommittedSerializer.java:67) at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:186) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:172) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at And the walkNode just repeats to infinity and the request fails. Interestingly I can do cfdump var=#xmlFileReader.search(/transfer/objectDefinitions/package[@name='event']/object[@name='event'])# label=Searching for event.event in the config reader / which works and behind the scenes that uses getXMLCollection(), but something is borked. Interestingly if I try changing that search, all of these fail with the same stackoverflow error: xmlFileReader.search(/transfer/objectDefinitions/package) xmlFileReader.search(/transfer/objectDefinitions) xmlFileReader.search(//objectDefinitions/package) xmlFileReader.search(//objectDefinitions) These all failed with a slightly different but XML-related error: java.lang.StackOverflowError at org.apache.xerces.dom.ParentNode.item(Unknown Source) at net.sf.saxon.dom.NodeWrapper$ChildEnumeration.skipFollowingTextNodes(NodeWrapper.java:1166) at net.sf.saxon.dom.NodeWrapper$ChildEnumeration.next(NodeWrapper.java:1194) at net.sf.saxon.tree.util.Navigator$EmptyTextFilter.next(Navigator.java:918) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:1052) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:) at net.sf.saxon.tree.util.Navigator$BaseEnumeration.next(Navigator.java:949) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:1043) at (which repeats until the end) I've gotten to the point where I can access a messed up XMLCollection. Any suggestions on how to traverse the collection looking for what appears to be a recursive problem? (thinking about it, maybe I'm not supposed to be able to dump it because of links and m2o, o2m, etc?) Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
That could be - but since the stack trace just loops infinitely, I can't see where the error is occurring. I'm not getting any errors in exception or coldfusion-out.log either. I get a single line in application.log that says: Error,ajp-bio-8016-exec-10,03/31/13,20:48:26,, FWIW, the error from the XML dump is the same one that I get when trying to process these two objects. The code is pretty basic... load two objects, create another two, set some properties, save the two new ones and delete the two existing ones. But it's spread across a few MG controller methods which makes it kind of hard to pin point. I'll see if I can figure out a way to replicate in a test script. Brian On Monday, April 1, 2013 5:02:53 PM UTC-7, Mark Mandel wrote: What's the actual error you get from Transfer when trying to create the object? Seems like the error from the XML dump may be a red herring. Mark On Tue, Apr 2, 2013 at 8:15 AM, Brian G brian-...@vfive.com javascript: wrote: Ok, so I let the app run for a few days and now I'm getting errors while trying to basically instantiate Transfer objects. I've made some changes to public/private packaging so I can get at the Transfer configuration and here's what's happening: cfset orm = application.cs.getBean(ormService) / cfset t = orm.getTransfer() / cfset objMgr = t.getObjectManager() / cfset to = objMgr.getObject(event.event) / cfdump var=#t.getObjectManager().getObjectGateway().listClasses()# label=array of classes in definitions / cfset objDAO = objMgr.getObjectDAO() / cfset empty = objMgr.createEmptyObject() / cfset objDAO.getObject(empty, event.event) / cfset xmlFileReader = objDAO.getConfigReader() / cfset xml = xmlFileReader.getXMLCollection() / cfdump var=#xml# label=shows the XML in memory read by transfer top=1 / I can get up to the point where I getXMLCollection(). As soon as I try to navigate it with cfdump or anything else, I get a very terse err with a stack overflow: Stack Trace java.lang.StackOverflowError at net.sf.saxon.serialize.XMLEmitter.writeCharSequence(XMLEmitter.java:652) at net.sf.saxon.serialize.XMLEmitter.writeEscape(XMLEmitter.java:745) at net.sf.saxon.serialize.XMLEmitter.characters(XMLEmitter.java:591) at net.sf.saxon.serialize.UncommittedSerializer.characters(UncommittedSerializer.java:67) at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:186) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:172) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:235) at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:150) at And the walkNode just repeats to infinity and the request fails. Interestingly I can do cfdump var=#xmlFileReader.search(/transfer/objectDefinitions/package[@name='event']/object[@name='event'])# label=Searching for event.event in the config reader / which works and behind the scenes that uses getXMLCollection(), but something is borked. Interestingly if I try changing that search, all of these fail with the same stackoverflow error: xmlFileReader.search(/transfer/objectDefinitions/package) xmlFileReader.search(/transfer/objectDefinitions) xmlFileReader.search(//objectDefinitions/package) xmlFileReader.search(//objectDefinitions) These all failed with a slightly different but XML-related error: java.lang.StackOverflowError at org.apache.xerces.dom.ParentNode.item(Unknown Source) at net.sf.saxon.dom.NodeWrapper$ChildEnumeration.skipFollowingTextNodes(NodeWrapper.java:1166) at net.sf.saxon.dom.NodeWrapper$ChildEnumeration.next(NodeWrapper.java:1194) at net.sf.saxon.tree.util.Navigator$EmptyTextFilter.next(Navigator.java:918) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:1052) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:) at net.sf.saxon.tree.util.Navigator$BaseEnumeration.next(Navigator.java:949) at net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance(Navigator.java:1043) at (which repeats until the end) I've gotten to the point where I can access a messed up XMLCollection. Any suggestions on how to traverse the collection looking for what appears to be a recursive problem? (thinking about it, maybe I'm not supposed to be able to dump it because of links and m2o, o2m, etc?) Brian -- -- 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:
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
In the stack overflow - is there any CF code being processed? Mark On Tue, Apr 2, 2013 at 12:18 PM, Brian G brian-goo...@vfive.com wrote: That could be - but since the stack trace just loops infinitely, I can't see where the error is occurring. I'm not getting any errors in exception or coldfusion-out.log either. I get a single line in application.log that says: Error,ajp-bio-8016-exec-10,03/31/13,20:48:26,, FWIW, the error from the XML dump is the same one that I get when trying to process these two objects. The code is pretty basic... load two objects, create another two, set some properties, save the two new ones and delete the two existing ones. But it's spread across a few MG controller methods which makes it kind of hard to pin point. I'll see if I can figure out a way to replicate in a test script. Brian On Monday, April 1, 2013 5:02:53 PM UTC-7, Mark Mandel wrote: What's the actual error you get from Transfer when trying to create the object? Seems like the error from the XML dump may be a red herring. Mark On Tue, Apr 2, 2013 at 8:15 AM, Brian G brian-...@vfive.com wrote: Ok, so I let the app run for a few days and now I'm getting errors while trying to basically instantiate Transfer objects. I've made some changes to public/private packaging so I can get at the Transfer configuration and here's what's happening: cfset orm = application.cs.getBean(**ormService) / cfset t = orm.getTransfer() / cfset objMgr = t.getObjectManager() / cfset to = objMgr.getObject(event.event**) / cfdump var=#t.getObjectManager().**getObjectGateway().**listClasses()# label=array of classes in definitions / cfset objDAO = objMgr.getObjectDAO() / cfset empty = objMgr.createEmptyObject() / cfset objDAO.getObject(empty, event.event) / cfset xmlFileReader = objDAO.getConfigReader() / cfset xml = xmlFileReader.**getXMLCollection() / cfdump var=#xml# label=shows the XML in memory read by transfer top=1 / I can get up to the point where I getXMLCollection(). As soon as I try to navigate it with cfdump or anything else, I get a very terse err with a stack overflow: Stack Trace java.lang.StackOverflowError at net.sf.saxon.serialize.** XMLEmitter.writeCharSequence(**XMLEmitter.java:652) at net.sf.saxon.serialize.**XMLEmitter.writeEscape(**XMLEmitter.java:745) at net.sf.saxon.serialize.**XMLEmitter.characters(**XMLEmitter.java:591) at net.sf.saxon.serialize.**UncommittedSerializer.**characters(**UncommittedSerializer.java:67) at net.sf.saxon.event.**ProxyReceiver.characters(**ProxyReceiver.java:186) at net.sf.saxon.dom.DOMSender.**walkNode(DOMSender.java:172) at net.sf.saxon.dom.DOMSender.**outputElement(DOMSender.java:**235) at net.sf.saxon.dom.DOMSender.**walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.**outputElement(DOMSender.java:**235) at net.sf.saxon.dom.DOMSender.**walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.**outputElement(DOMSender.java:**235) at net.sf.saxon.dom.DOMSender.**walkNode(DOMSender.java:150) at net.sf.saxon.dom.DOMSender.**outputElement(DOMSender.java:**235) at net.sf.saxon.dom.DOMSender.**walkNode(DOMSender.java:150) at And the walkNode just repeats to infinity and the request fails. Interestingly I can do cfdump var=#xmlFileReader.search(/** transfer/objectDefinitions/**package[@name='event']/object[**@name='event'])# label=Searching for event.event in the config reader / which works and behind the scenes that uses getXMLCollection(), but something is borked. Interestingly if I try changing that search, all of these fail with the same stackoverflow error: xmlFileReader.search(/**transfer/objectDefinitions/**package) xmlFileReader.search(/**transfer/objectDefinitions) xmlFileReader.search(//**objectDefinitions/package) xmlFileReader.search(//**objectDefinitions) These all failed with a slightly different but XML-related error: java.lang.StackOverflowError at org.apache.xerces.dom.**ParentNode.item(Unknown Source) at net.sf.saxon.dom.NodeWrapper$**ChildEnumeration.** skipFollowingTextNodes(**NodeWrapper.java:1166) at net.sf.saxon.dom.NodeWrapper$**ChildEnumeration.next(**NodeWrapper.java:1194) at net.sf.saxon.tree.util.**Navigator$EmptyTextFilter.**next(Navigator.java:918) at net.sf.saxon.tree.util.**Navigator$**DescendantEnumeration.advance(**Navigator.java:1052) at net.sf.saxon.tree.util.**Navigator$**DescendantEnumeration.advance(**Navigator.java:) at net.sf.saxon.tree.util.**Navigator$BaseEnumeration.**next(Navigator.java:949) at net.sf.saxon.tree.util.**Navigator$**DescendantEnumeration.advance(**Navigator.java:1043) at (which repeats until the end) I've gotten to the point where I can access a messed up XMLCollection. Any suggestions on how to traverse the collection looking for what appears to be a recursive problem? (thinking about it, maybe I'm not supposed to be able to dump it because of links and m2o, o2m, etc?) Brian -- --
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
On Monday, April 1, 2013 6:38:18 PM UTC-7, Mark Mandel wrote: In the stack overflow - is there any CF code being processed? Mark Stack trace is just filled with the repetitive XML processing error. It never shows any CFML templates/codes/lines/etc. Makes it pretty hard to diagnose?? I'm going to try and replicate the code in my controllers/methods and push it live and see if I can get it to take. It's hard to isolate it as restarting the server would likely make *this* issue go away but some other one pop up in a few days. I think I'm going to start taking Ruby classes. :) Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Yeah, this sounds like a bizarre issue with the XML parser. JRuby is very nice though ;) Mark On Tue, Apr 2, 2013 at 3:11 PM, Brian G brian-goo...@vfive.com wrote: On Monday, April 1, 2013 6:38:18 PM UTC-7, Mark Mandel wrote: In the stack overflow - is there any CF code being processed? Mark Stack trace is just filled with the repetitive XML processing error. It never shows any CFML templates/codes/lines/etc. Makes it pretty hard to diagnose?? I'm going to try and replicate the code in my controllers/methods and push it live and see if I can get it to take. It's hard to isolate it as restarting the server would likely make *this* issue go away but some other one pop up in a few days. I think I'm going to start taking Ruby classes. :) Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
There have been some posts on list of people who have done exactly that. Pretty sure some people wrote some generators to handle it too, although I'm not sure if anyone published them. Mark On Thu, Mar 28, 2013 at 7:41 AM, Brian G brian-goo...@vfive.com wrote: On Tuesday, March 26, 2013 4:12:48 PM UTC-7, Mark Mandel wrote: ... Just when I think I've heard the last call for Transfer ;o) http://www.2ddu.com/ I would pay for a Migration-to-ORM guide... hint hint. It would save me from floundering around and the gotchas I'm sure related to relationships and caching. -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
In my searching I have uncovered people planning to do it or saying they did it but no real specifics other than to use abstract classes. On Wednesday, March 27, 2013 3:25:24 PM UTC-7, Mark Mandel wrote: There have been some posts on list of people who have done exactly that. Pretty sure some people wrote some generators to handle it too, although I'm not sure if anyone published them. -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
See! Easy solution! ;) Use abstract classses :) * ducks and hides * Sorry, couldn't resist. Mark On Thu, Mar 28, 2013 at 11:31 AM, Brian G brian-goo...@vfive.com wrote: In my searching I have uncovered people planning to do it or saying they did it but no real specifics other than to use abstract classes. On Wednesday, March 27, 2013 3:25:24 PM UTC-7, Mark Mandel wrote: There have been some posts on list of people who have done exactly that. Pretty sure some people wrote some generators to handle it too, although I'm not sure if anyone published them. -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Ok, let me throw out an oddity... and see if anyone can help me think through where to log to understand what is happening: I have an object, event.event, it has a property, uidRegistrar. I'm trying to create an event object and the decorate has a configure() that sets it null: setUidRegistrarNull(). Been in production for 3 years, all good. On CF10 however, I'm getting: transfer.com.object.exception.PropertyNotFoundException: The property that was searched for could not be found The property 'uidregistrar' could not be found in the object 'event.event' - /var/www/pukka/shared-prod/transfer/com/exception/Exception.cfc (*30, CFTHROW*) - /var/www/pukka/shared-prod/transfer/com/object/exception/PropertyNotFoundException.cfc (*29, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/transfer/com/object/Object.cfc (*233, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/sql/Nullable.cfc (*307, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/sql/Nullable.cfc (*175, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/generated/event.event$9BAD77B8699F80787CCAB85B8FEC651C.transfer (*212, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/generated/event.event@9BAD77B8699F80787CCAB85B8FEC651C.transfer (*408, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/model/event/event.cfc (*36, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/transfer/com/TransferDecorator.cfc (*46, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/transfer/com/Transfer.cfc (*77, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/Transfer.cfc (*113, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/model/event/eventGateway.cfc (*138, CF_TEMPLATEPROXY*) Now, as I've mentioned, I'm really, really confident that the property is defined in transfer.xml. :) Now here's the curious part. In the file /var/www/pukka/shared-prod/ generated/event.event$9BAD77B8699F80787CCAB85B8FEC651C.transfer, the methods setuidregistrar, getuidregistrar and setuidregistrarnull are all defined. It's this getNullable().getNullUUID(getClassName(), uidregistrar) line that is throwing the error: cffunction name=setuidregistrarNull access=public returntype=void default=void hint=Set uidregistrar to its NULL value' output=false cfscript var nullValue = getNullable().getNulluuid(getClassName(), uidregistrar); setuidregistrar(nullValue); /cfscript /cffunction So in Nullable.cfc, hasNullValue() tries to get the uidregistrar property on event.event: var property = object.getPropertyByName(arguments.propertyName); And it fails to find it in the property map inside Object.cfc: cffunction name=getPropertyByName hint=Gets a property by name. Throws PropertyNotFoundException if the property doesn't exist access=public returntype=Property output=false cfargument name=name hint=The name of the property type=string required=Yes cfscript var map = getPropertyMap(); if(StructKeyExists(map, arguments.name)) { return map[arguments.name]; } if(getPrimaryKey().getName() eq arguments.name) { return getPrimaryKey(); } createObject(component, transfer.com.object.exception.PropertyNotFoundException).init(getClassName(), arguments.name); /cfscript /cffunction So the error is then thrown. Clearly impossible, I would think, for Transfer to know the property exists and generate the transfer file with the generated methods but then not know it exists when I try to retrieve it and throws an error. Unfortunately it's happening. :) So... what I want to know is, is there a way to get at Transfer's configuration after it's parsed by XMLFileReader and dump it somehow? How can I get a reference to what Transfer thinks is the current configuration and view it to see how it matches/differs what is in transfer.xml? I know it shouldn't be different, but it is, so at least finding out if there's anything consistent in the failure would get me pointed towards a possible solution. Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
That is odd. You can get at it through the ObjectManager: http://docs.transfer-orm.com/html/transferapi//transfer/com/Transfer.html#getObjectManager() Mark On Wed, Mar 27, 2013 at 6:21 AM, Brian G brian-goo...@vfive.com wrote: Ok, let me throw out an oddity... and see if anyone can help me think through where to log to understand what is happening: I have an object, event.event, it has a property, uidRegistrar. I'm trying to create an event object and the decorate has a configure() that sets it null: setUidRegistrarNull(). Been in production for 3 years, all good. On CF10 however, I'm getting: transfer.com.object.exception.**PropertyNotFoundException: The property that was searched for could not be found The property 'uidregistrar' could not be found in the object 'event.event' - /var/www/pukka/shared-prod/**transfer/com/exception/**Exception.cfc ( *30, CFTHROW*) - /var/www/pukka/shared-prod/**transfer/com/object/exception/**PropertyNotFoundException.cfc (*29, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/**transfer/com/object/Object.cfc (*233, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/**transfer/com/sql/Nullable.cfc (*307, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/**transfer/com/sql/Nullable.cfc (*175, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/**generated/event.event$** 9BAD77B8699F80787CCAB85B8FEC65**1C.transfer (*212, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/**generated/event.event@** 9BAD77B8699F80787CCAB85B8FEC65**1C.transfer (*408, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/**model/event/event.cfc (*36, CF_UDFMETHOD *) - /var/www/pukka/shared-prod/**transfer/com/**TransferDecorator.cfc (*46, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/**transfer/com/Transfer.cfc (*77, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/**transfer/com/Transfer.cfc (*113, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/**model/event/eventGateway.cfc (*138, CF_TEMPLATEPROXY*) Now, as I've mentioned, I'm really, really confident that the property is defined in transfer.xml. :) Now here's the curious part. In the file /var/www/pukka/shared-prod/ **generated/event.event$**9BAD77B8699F80787CCAB85B8FEC65**1C.transfer, the methods setuidregistrar, getuidregistrar and setuidregistrarnull are all defined. It's this getNullable().getNullUUID(**getClassName(), uidregistrar) line that is throwing the error: cffunction name=setuidregistrarNull access=public returntype=void default=void hint=Set uidregistrar to its NULL value' output=false cfscript var nullValue = getNullable().getNulluuid(**getClassName(), uidregistrar); setuidregistrar(nullValue); /cfscript /cffunction So in Nullable.cfc, hasNullValue() tries to get the uidregistrar property on event.event: var property = object.getPropertyByName(**arguments.propertyName); And it fails to find it in the property map inside Object.cfc: cffunction name=getPropertyByName hint=Gets a property by name. Throws PropertyNotFoundException if the property doesn't exist access=public returntype=Property output=false cfargument name=name hint=The name of the property type=string required=Yes cfscript var map = getPropertyMap(); if(StructKeyExists(map, arguments.name)) { return map[arguments.name]; } if(getPrimaryKey().getName() eq arguments.name) { return getPrimaryKey(); } createObject(component, transfer.com.object.**exception.** PropertyNotFoundException).**init(getClassName(), arguments.name); /cfscript /cffunction So the error is then thrown. Clearly impossible, I would think, for Transfer to know the property exists and generate the transfer file with the generated methods but then not know it exists when I try to retrieve it and throws an error. Unfortunately it's happening. :) So... what I want to know is, is there a way to get at Transfer's configuration after it's parsed by XMLFileReader and dump it somehow? How can I get a reference to what Transfer thinks is the current configuration and view it to see how it matches/differs what is in transfer.xml? I know it shouldn't be different, but it is, so at least finding out if there's anything consistent in the failure would get me pointed towards a possible solution. Brian -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@googlegroups.com For more options, visit this group at
Re: [transfer-dev] Coldfusion 10 and Transfer ORM?
Oooh yeah. I'd forgotten about that. Mark On Thu, Mar 21, 2013 at 11:32 AM, Jeremy Firsenbaum jfirsenb...@gmail.comwrote: Brian - I've had Transfer running on CF10 in production for close to a year now. If I recall correctly the only change I had to make to the newer ehcache-based version of transfer is this: com.factory.CFMLVersion.cfc change line 40 to: if(server.coldfusion.productversion.startsWith(8) OR server.coldfusion.productversion.startsWith(9) OR server.coldfusion.productversion.startsWith(10)) Hope that helps, Jeremy On Mar 20, 2013, at 7:01 PM, Brian G brian-goo...@vfive.com wrote: I'll share a few more odd errors just to add context. I restarted the app (refreshed Transfer) and now several pages that use Transfer (but not all pages) are failing with: Expression: Unable to process the result of the XMLSearch for ''. ColdFusion is unable to process the result of the XPath search. You may have an undefined variable in the xpath expression. http://www3.motorsportreg.com:443/em360/index.cfm/event/profile.types - /var/www/pukka/shared-prod/transfer/com/io/XMLFileReader.cfc (*52, CF_CFPAGE*) - /var/www/pukka/shared-prod/transfer/com/object/ObjectGateway.cfc (*103, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/object/ObjectManager.cfc (*294, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/object/ObjectManager.cfc (*66, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/transfer/com/sql/TransferGateway.cfc (*109, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/sql/SQLManager.cfc (*138, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/Transfer.cfc (*513, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/model/club/clubService.cfc (*706, CF_TEMPLATEPROXY*) Restarted, this time the random error is: The requested object could not be found in the config file Could not find 'theme.theme' in '/var/www/pukka/main-prod/config/transfer/transfer.xml'. The error occurred in */var/www/pukka/shared-prod/transfer/com/exception/Exception.cfc: line 30* *Called from* /var/www/pukka/shared-prod/transfer/com/object/exception/TransferObjectNotFoundException.cfc: line 31 *Called from* /var/www/pukka/shared-prod/transfer/com/object/ObjectDAO.cfc: line 71 *Called from* /var/www/pukka/shared-prod/transfer/com/object/ObjectManager.cfc: line 61 *Called from* /var/www/pukka/shared-prod/transfer/com/dynamic/KeyRationalise.cfc: line 41 *Called from* /var/www/pukka/shared-prod/transfer/com/dynamic/DynamicManager.cfc: line 59 *Called from* /var/www/pukka/shared-prod/transfer/com/Transfer.cfc: line 701 *Called from* /var/www/pukka/shared-prod/transfer/com/Transfer.cfc: line 98 *Called from* /var/www/pukka/shared-prod/model/theme/themeService.cfc: line 68 And Could not find 'event.event' in '/var/www/pukka/main-prod/config/transfer/transfer.xml'. - /var/www/pukka/shared-prod/transfer/com/exception/Exception.cfc (*30, CFTHROW*) - /var/www/pukka/shared-prod/transfer/com/object/exception/TransferObjectNotFoundException.cfc (*31, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/transfer/com/object/ObjectDAO.cfc (*71, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/object/ObjectManager.cfc (*61, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/dynamic/KeyRationalise.cfc (*41, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/dynamic/DynamicManager.cfc (*59, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/Transfer.cfc (*701, CF_TEMPLATEPROXY*) - /var/www/pukka/shared-prod/transfer/com/Transfer.cfc (*98, CF_UDFMETHOD*) - /var/www/pukka/shared-prod/model/event/eventGateway.cfc (*138, CF_TEMPLATEPROXY*) Bizarre-o. Hopefully I'm not the last person using this and someone can help? Otherwise I am paying for extra servers until I can rewrite the (significantly-sized) app to use ORM. :( -- -- 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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- Before posting questions to the group please