Copy link to clipboard
Copied
Hi all
I get this error when updating a record:
The cause of this output exception was that: java.lang.NullPointerException.
78 : MEETING= <cfqueryparam cfsqltype="cf_sql_timestamp" value="#meetingDate#" />
This is the code that sets the meetingDate:
<cfset meetingDate = trim(form.meeting)>
<cfif not isDate(meetingDate)>
<cfelseif DayOfWeek(Now()) eq 5>
<cfset meetingDate = dateAdd("d", 4, now())>
<cfelseif DayOfWeek(Now()) eq 1>
<cfset meetingDate = dateAdd("d", 3, now())>
<cfelse>
<cfset meetingDate = dateAdd("d", 2, now())>
</cfif>
It works when I use this code, but I am using some more conditions now:
<cfset meetingDate = trim(form.meeting)>
<cfif not isDate(meetingDate)>
<cfset meetingDate = dateAdd("d", 2, now())>
</cfif>
Why does it throw the java error? Thank you
I thought it was the onrequestend but it was actually for some reason using OR with the eq that messed it up, I just broke it down so instead of doing
<cfif DayOfWeek(Now()) eq 2 OR 3>
I did this:
<!--- Monday --->
<cfif DayOfWeek(Now()) eq 2>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Tuesday --->
<cfelseif DayOfWeek(Now()) eq 3>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Wednesday --->
<cfelseif DayOfWeek(Now()) eq 4>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Thursday --->
<cfelse
...Copy link to clipboard
Copied
When in doubt, look at your data. What is the value of form.meeting? What is the value of meetingDate after the block of code?
I suggest outputting bits of text after each if, elseif, and else tag so you can see which ones return true.
Copy link to clipboard
Copied
Thanks Dan I have been doing lots of tests with cfdump etc. I have got the following code now for the conditionals, I think it is correctly setout now, but how do I check to see if a query value exists in the cfelseif conditional (I have a query called qholidays that checks dates in a table that must be taken into consideration in the cfelseif) Thank you
<!--- set var meetingdate as the value in the form --->
<cfset meetingDate = trim(form.meeting)>
<!---if form.meetingdate is empty and DayOfWeek(Now()) eq 2,3,4 (monday, tuesday or wednesday) add 2 days to today's date--->
<cfif not isDate(meetingDate) and DayOfWeek(Now()) eq 2,3,4>
<cfset meetingDate = dateAdd("d", 2, now())>
<!---if form.meetingdate is empty and DayOfWeek(Now()) eq 1 sunday and monday is not a value in qholidays add 1 day to today's date--->
<cfelseif DayOfWeek(Now()) eq 1>
<cfset meetingDate = dateAdd("d", 1, now())>
<!---if form.meetingdate is empty and DayOfWeek(Now()) eq 5 thursday and monday is not a value in qholidays add 4 days to today's date--->
<cfelseif DayOfWeek(Now()) eq 5>
<cfset meetingDate = dateAdd("d", 4, now())>
<!---if form.meetingdate is empty and DayOfWeek(Now()) eq 6 (friday) and monday is not a value in qholidays add 3 days to today's date--->
<cfelseif DayOfWeek(Now()) eq 6>
<cfset meetingDate = dateAdd("d", 3, now())>
<!-- otherwise set var meetingdate as the value in the form--->
<cfelse>
<cfset meetingDate = trim(form.meeting)>
</cfif>
Copy link to clipboard
Copied
If you have all that stuff working correctly, leave it and check to see if your meetingDate is a holiday afterwards.
Copy link to clipboard
Copied
I changed the code to get rid of anything other than DayOfWeek values but it still adds two days to today's date when today is a wednesday, I don't see where this could happen in the code, why is this happening?
<!--- set var meetingdate as a string --->
<cfset meetingDate = "testvalue">
<!---if DayOfWeek(Now()) eq 2,3 (monday, tuesday) add 2 days to today's date--->
<cfif DayOfWeek(Now()) eq 2 OR 3>
<cfset meetingDate = dateAdd("d", 2, now())>
<!---if DayOfWeek(Now()) eq 1 sunday add 1 day to today's date--->
<cfelseif DayOfWeek(Now()) eq 1>
<cfset meetingDate = dateAdd("d", 1, now())>
<!---if DayOfWeek(Now()) eq 5 thursday add 4 days to today's date--->
<cfelseif DayOfWeek(Now()) eq 5>
<cfset meetingDate = dateAdd("d", 4, now())>
<!---if DayOfWeek(Now()) eq 6 (friday) add 3 days to today's date--->
<cfelseif DayOfWeek(Now()) eq 6>
<cfset meetingDate = dateAdd("d", 3, now())>
<!-- otherwise set var meetingdate as a different string--->
<cfelse>
<cfset meetingDate = "testvalueelse">
</cfif>
<cfoutput>#meetingdate#</cfoutput>
Copy link to clipboard
Copied
I thought it was the onrequestend but it was actually for some reason using OR with the eq that messed it up, I just broke it down so instead of doing
<cfif DayOfWeek(Now()) eq 2 OR 3>
I did this:
<!--- Monday --->
<cfif DayOfWeek(Now()) eq 2>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Tuesday --->
<cfelseif DayOfWeek(Now()) eq 3>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Wednesday --->
<cfelseif DayOfWeek(Now()) eq 4>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Thursday --->
<cfelseif DayOfWeek(Now()) eq 5>
<cfset meetingDate = dateAdd("d", 4, now())>
<!--- Friday --->
<cfelseif DayOfWeek(Now()) eq 6>
<cfset meetingDate = dateAdd("d", 3, now())>
<!--- Saturday --->
<cfelseif DayOfWeek(Now()) eq 7>
<cfset meetingDate = dateAdd("d", 2, now())>
<!--- Sunday --->
<cfelseif DayOfWeek(Now()) eq 1>
<cfset meetingDate = dateAdd("d", 1, now())>
</cfif>