Hello. I am developing an app for my employer, and I am encountering an error due to coercion somewhere in one of my pages. I am having trouble locating it. I hope someone can provide me with a bit of assistance.
exception
javax.servlet.ServletExcep
tion: Attempt to coerce a boolean value "false" to type "java.lang.Long"
org.apache.jasper.runtime.
PageContex
tImpl.doHa
ndlePageEx
ception(Pa
geContextI
mpl.java:8
25)
org.apache.jasper.runtime.
PageContex
tImpl.hand
lePageExce
ption(Page
ContextImp
l.java:758
)
org.apache.jsp.jsp.process
_jsp._jspS
ervice(pro
cess_jsp.j
ava:2207)
org.apache.jasper.runtime.
HttpJspBas
e.service(
HttpJspBas
e.java:94)
javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
802)
org.apache.jasper.servlet.
JspServlet
Wrapper.se
rvice(JspS
ervletWrap
per.java:3
24)
org.apache.jasper.servlet.
JspServlet
.serviceJs
pFile(JspS
ervlet.jav
a:292)
org.apache.jasper.servlet.
JspServlet
.service(J
spServlet.
java:236)
javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
802)
root cause
javax.servlet.jsp.el.ELExc
eption: Attempt to coerce a boolean value "false" to type "java.lang.Long"
org.apache.commons.el.Logg
er.logErro
r(Logger.j
ava:481)
org.apache.commons.el.Logg
er.logErro
r(Logger.j
ava:498)
org.apache.commons.el.Logg
er.logErro
r(Logger.j
ava:566)
org.apache.commons.el.Coer
cions.coer
ceToPrimit
iveNumber(
Coercions.
java:422)
org.apache.commons.el.Coer
cions.appl
yArithmeti
cOperator(
Coercions.
java:872)
org.apache.commons.el.Arit
hmeticOper
ator.apply
(Arithmeti
cOperator.
java:83)
org.apache.commons.el.Bina
ryOperator
Expression
.evaluate(
BinaryOper
atorExpres
sion.java:
170)
org.apache.commons.el.Expr
essionEval
uatorImpl.
evaluate(E
xpressionE
valuatorIm
pl.java:26
3)
org.apache.commons.el.Expr
essionEval
uatorImpl.
evaluate(E
xpressionE
valuatorIm
pl.java:19
0)
org.apache.jasper.runtime.
PageContex
tImpl.prop
rietaryEva
luate(Page
ContextImp
l.java:899
)
org.apache.jsp.jsp.process
_jsp._jspx
_meth_c_if
_97(proces
s_jsp.java
:20735)
org.apache.jsp.jsp.process
_jsp._jspS
ervice(pro
cess_jsp.j
ava:2100)
org.apache.jasper.runtime.
HttpJspBas
e.service(
HttpJspBas
e.java:94)
javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
802)
org.apache.jasper.servlet.
JspServlet
Wrapper.se
rvice(JspS
ervletWrap
per.java:3
24)
org.apache.jasper.servlet.
JspServlet
.serviceJs
pFile(JspS
ervlet.jav
a:292)
org.apache.jasper.servlet.
JspServlet
.service(J
spServlet.
java:236)
javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.
The code which causes it is:
<%@ taglib prefix="c" uri="
http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="
http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="
http://java.sun.com/jsp/jstl/sql"%>
<%!String firstname;
String lastname;
%>
<%-- Check for valid session --%>
<c:if test="${validUser == null}">
<jsp:forward page="../login.jsp">
<jsp:param name="error" value="4" />
</jsp:forward>
</c:if>
<%-- ****************Address Stuff *********** --%>
<%-- Check if address/location exists --%>
<sql:query var="add_exists">
SELECT
*
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<%-- if a record is returned, get the address id --%>
<c:if test="${add_exists.rowCoun
t == 1}">
<c:forEach items="${add_exists.rows}"
var="add_row">
<c:set var="add_id" value="${add_row.add_id}" />
</c:forEach>
</c:if>
<%-- If 1 record is not returned from query, add the address--%>
<c:if test="${add_exists.rowCoun
t != 1}">
<sql:update var="insert_address">INSER
T INTO address_table VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ? )
<sql:param value="${param.Company}" />
<sql:param value="${param.Store_num}"
/>
<sql:param value="${param.add_1}" />
<sql:param value="${param.add_2}" />
<sql:param value="${param.city}" />
<sql:param value="${param.province}" />
<sql:param value="${param.country}" />
<sql:param value="${param.phone}" />
</sql:update>
<%--now get the address id.... --%>
<sql:query var="add_exists">
SELECT
add_id
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<c:forEach items="${add_exists.rows}"
var="row">
<c:set var="add_id" value="${row.add_id}" />
</c:forEach>
</c:if>
<%-- ************ check if crew member1 exists, and get id# ****************--%>
<c:if test="${not empty param.Crew1_name}">
<c:out value="testing to see if c1 exists " />
<sql:query var="crew1_exists">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seLastname
(request
.getParameter("Crew1_name"
)) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seFirstnam
e(request
.getParameter("Crew1_name"
)) %>' />
</sql:query>
<c:if test="${crew1_exists.rowCo
unt == 1}">
<c:forEach items="${crew1_exists.rows
}" var="crew1_row">
<c:set var="c1id" value="${crew1_row.person_
id}" />
</c:forEach>
</c:if>
<%-- if not, add him --%>
<c:if test="${crew1_exists.rowCo
unt != 1}">
<c:out value="c1 does not exist, adding him" />
<sql:update var="add_crew1">
INSERT INTO crew_map VALUES
(0, ?, ? )
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seLastname
(request
.getParameter("Crew1_name"
)) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seFirstnam
e(request
.getParameter("Crew1_name"
)) %>' />
</sql:update>
<%-- and then get the id --%>
<sql:query var="crew1_get_id">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seLastname
(request
.getParameter("Crew1_name"
)) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars
erBean.par
seFirstnam
e(request
.getParameter("Crew1_name"
)) %>' />
</sql:query>
<c:forEach items="${crew1_get_id.rows
}" var="crew1_row">
<c:set var="c1id" value="${crew1_row.person_
id}" />
</c:forEach>
</c:if>
</c:if>
<sql:update var="insert_job">INSERT INTO job_table VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
<sql:param value="${param.Date}" />
<sql:param value="${add_id}" />
<sql:param value="${c1id}" />
<sql:param value="${c2id}" />
<sql:param value="${c3id}" />
<sql:param value="${c4id}" />
<sql:param value="${c5id}" />
<sql:param value="${c6id}" />
<sql:param value="${param.travel_time
}" />
<sql:param value="${param.start_time}
" />
<sql:param value="${param.end_time}" />
<sql:param value="${param.delay_time}
" />
<sql:param value="${param.Comments}" />
</sql:update>
<sql:query var="job_id_check">
SELECT max(job_id) AS max_job_id FROM job_table
</sql:query>
<c:forEach items="${job_id_check.rows
}" var="job_row">
<c:set var="job_id" value="${job_row.max_job_i
d}" />
</c:forEach>
Thank you for any and all help/suggestions/ideas. It is really appreciated!