Howard,

One thing I might suggest is to try/catch the logic and dump the cfcatch scope 
into an email. This will probably yield you a more robust error report than 
what you see here.

I took your function and modified it just a bit to see if I could find 
something out. It looks like that, when you set the date as “31oct2012”,  the 
reason its yielding an error is because of your list being out of chronological 
order. Oct and Nov are switched. I fixed them up; the function returns the 
expected data.


From: [email protected] [mailto:[email protected]] On Behalf Of Howard Fore
Sent: Tuesday, June 26, 2012 9:25 PM
To: ACFUG Discussion
Subject: [ACFUG Discuss] Re: Odd CreateDate error

Actually that date string works ok. But "31Oct2011" does not. "30Oct2011" is 
ok, Halloween isn't. Grr.

--
Howard Fore, [email protected]<mailto:[email protected]>
“What people say, what people do, and what they say they do are entirely 
different things.” - Margaret Mead


On Tue, Jun 26, 2012 at 9:04 PM, Howard Fore 
<[email protected]<mailto:[email protected]>> wrote:
I'm sure there's some blindingly obvious thing I'm doing wrong here, but I 
can't see it. Any ideas would be extremely helpful.

<cffunction name="dateConverter">
<cfargument name="strDate" required="yes">
<cfargument name="strFormat" required = "yes">
<cfset var rtnDate = createDate(1900,1,1)>

<cfif arguments.strFormat is "ddmmmyyyy">
<!--- example: 31jan2012 --->
<cfset var dateParts = 
RefindNoCase('([0-9]{1,2})([a-z]{3,3})([0-9]{4,4})',arguments.strDate,1,true)>
<cfif dateparts.pos[2] neq 0>
<cfset var theDate = {}>

<cfset theDate.days = mid(arguments.strDate,dateParts.pos[2],dateParts.len[2])>

<cfset theDate.month = mid(arguments.strDate,dateParts.pos[3],dateParts.len[3])>
<cfset var theMonthsList = 'jan,feb,mar,apr,may,jun,jul,aug,sep,nov,oct,dec'>
<cfset theDate.monthNumber = ListFind(theMonthsList,theDate.month)>

<cfset theDate.year = mid(arguments.strDate,dateParts.pos[4],dateParts.len[4])>

<cfset rtnDate = createDate(theDate.year, theDate.monthNumber, theDate.days)>
</cfif>

</cfif>
<cfreturn rtnDate>
</cffunction>


<cfset theDate = "12oct2012">
<cfoutput>#dateConverter(theDate,'ddmmmyyyy')#</cfoutput>

gives me (in CF 9.0.1) an extremely unhelpful error (line 37 in the stack trace 
below is the cfset rtnDate line towards the end of the above function:

struct

Message

MONTH

StackTrace

java.lang.IllegalArgumentException: MONTH at 
java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2482) at 
java.util.Calendar.updateTime(Calendar.java:2469) at 
java.util.Calendar.getTimeInMillis(Calendar.java:1088) at 
java.util.Calendar.getTime(Calendar.java:1061) at 
coldfusion.util.DateUtils.createDate(DateUtils.java:959) at 
coldfusion.runtime.CFPage.CreateDate(CFPage.java:1009) at 
cfindex2ecfm2067856441$funcDATECONVERTER.runFunction(D:\frba\pages\research\inflationproject\dashboard\index.cfm:37)
 at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at 
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
 at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) 
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at 
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at 
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2582) at 
cfindex2ecfm2067856441._factor2(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1251)
 at 
cfindex2ecfm2067856441._factor11(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1242)
 at 
cfindex2ecfm2067856441._factor12(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1156)
 at 
cfindex2ecfm2067856441._factor13(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1154)
 at 
cfindex2ecfm2067856441._factor14(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1146)
 at 
cfindex2ecfm2067856441._factor24(D:\frba\pages\research\inflationproject\dashboard\index.cfm:1137)
 at 
cfindex2ecfm2067856441._factor32(D:\frba\pages\research\inflationproject\dashboard\index.cfm:13)
 at 
cfindex2ecfm2067856441.runPage(D:\frba\pages\research\inflationproject\dashboard\index.cfm:12)
 at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at 
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at 
coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at 
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360) at 
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at 
coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at 
coldfusion.filter.PathFilter.invoke(PathFilter.java:94) at 
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at 
coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79) at 
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
 at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at 
coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at 
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at 
coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at 
coldfusion.CfmServlet.service(CfmServlet.java:200) at 
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at 
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
 at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at 
jrun.servlet.FilterChain.service(FilterChain.java:101) at 
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at 
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at 
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at 
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at 
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at 
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)


--
Howard Fore, [email protected]<mailto:[email protected]>
“What people say, what people do, and what they say they do are entirely 
different things.” - Margaret Mead


________________________________
No virus found in this message.
Checked by AVG - www.avg.com<http://www.avg.com>
Version: 2012.0.2178 / Virus Database: 2437/5095 - Release Date: 06/26/12
N�����r��y����b�X��f�j���鮇���m����q����

Reply via email to