From 5169861ef66d116fbaba118ddfce0876176d73ad Mon Sep 17 00:00:00 2001 From: David Pollak Date: Thu, 30 May 2013 09:31:56 -0700 Subject: [PATCH] Null testing for headers. Closes #1452 --- .../provider/servlet/HTTPRequestServlet.scala | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPRequestServlet.scala b/web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPRequestServlet.scala index c31dbe6d09..b18d8593c3 100644 --- a/web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPRequestServlet.scala +++ b/web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPRequestServlet.scala @@ -46,10 +46,18 @@ class HTTPRequestServlet(val req: HttpServletRequest, val provider: HTTPProvider lazy val authType: Box[String] = Box !! req.getAuthType - def headers(name: String): List[String] = enumToList[String](req.getHeaders(name).asInstanceOf[java.util.Enumeration[String]]) - - lazy val headers: List[HTTPParam] = enumToList[String](req.getHeaderNames.asInstanceOf[java.util.Enumeration[String]]). - map(n => HTTPParam(n, headers(n))) + def headers(name: String): List[String] = + for { + h <- (Box !! req.getHeaders(name)).asA[java.util.Enumeration[String]].toList + li <- enumToList[String](h) if null != li + } yield li + + lazy val headers: List[HTTPParam] = + for { + hne <- (Box !! req.getHeaderNames).asA[java.util.Enumeration[String]].toList + n <- enumToList[String](hne) if null != n + hl <- Full(headers(n)) if !hl.isEmpty + } yield HTTPParam(n, hl) def contextPath: String = req.getContextPath