Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

What is this java.lang.NumberFormatException: null

TAJDINMar 27 2015 — edited Mar 27 2015

Sir,

I am trying to run a report with a button on a jsff page

My button code is

<af:button text="button 1" id="b1" destination="/printreportservlet?employeeId#{bindings.EmployeeId.inputValue}"/>

My servlet code is

package view;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.HashMap;

import java.util.Locale;

import java.util.Map;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import model.AppModuleImpl;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperExportManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

import oracle.jbo.client.Configuration;

@WebServlet(name = "PrintReportServlet", urlPatterns = { "/printreportservlet" })

public class PrintReport1Servlet extends HttpServlet {

    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

    public void init(ServletConfig config) throws ServletException {

        super.init(config);

    }

   

    /**

             * @return

             */

            protected Connection getConnection() {

    

    

    //            System.out.println("getConnection--");

    

    

                PreparedStatement st = null;

                String amDef = "sa.gov.rgr.model.module.AppModuleAM";

                String config = "AppModuleAMLocal";

                AppModuleImpl am = (AppModuleImpl ) Configuration.createRootApplicationModule(amDef, config);

    

    

                st = am.getDBTransaction().createPreparedStatement("select 1 from dual", 0);

                Connection conn = null;

    

    

                try {

                    conn = st.getConnection();

                    return conn;

                } catch (SQLException e) {

                }

    

    

                return null;

            }

    /**

         * @param request

         * @param response

         * @throws ServletException

         * @throws IOException

         */   

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType(CONTENT_TYPE);

        PrintWriter out = response.getWriter();

        out.println("<html>");

        out.println("<head><title>PrintReportServlet</title></head>");

        out.println("<body>");

        out.println("<p>The servlet has received a GET. This is the reply.</p>");

        out.println("</body></html>");

        out.close();

       

        String var0 = "";

                try {

                    var0 = request.getParameter("employeeId");

                  

                } catch (Exception e) {

                    e.printStackTrace();

                }

              

                response.setContentType(CONTENT_TYPE);

              

                Map parameters = new HashMap();

                parameters.put("format", "pdf");

                parameters.put("WEBDIR", getServletContext().getRealPath("/"));

                parameters.put("REPORT_LOCALE", new Locale("ar"));

        

        

                parameters.put("employeeId", new Long(var0));

                Connection conn = null;

                InputStream is = null;

                try

                {

                  conn = getConnection();

                  is = getServletContext().getResourceAsStream("/WEB-INF/reports/Report.jrxml");

        

        

                  response.setContentType("application/pdf");

                  response.addHeader("Content-Disposition", "attachment; filename=report.pdf");

                  

                  JasperDesign jasperDesign = JRXmlLoader.load(is);

                  JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

        

        

                  JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);

        

        

                  JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());

                  

        

                  conn.close();

                }

                catch (Exception e) {

                  e.printStackTrace();

                } finally {

                  closeConnection(conn);

                  try {

                      if(is !=null){

                          is.close();

                      }

                    

                    

                  } catch (Exception localException1)

                  {

                  }

                }

              

            }

   

    /**

         * @param conn

         */

        protected static void closeConnection(Connection conn) {

            try {

                if(conn !=null){

                    conn.close();

                }

              

            } catch (Exception ex) {

                //  System.out.println("Developer Msg : Exception in printReport1Servlet.closeConnection()");

            }

        }

   

}

My report code is

<?xml version="1.0" encoding="UTF-8"?>

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Report" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="1100e657-82b6-466e-b6eb-58efd82952cb">

  <property name="ireport.zoom" value="1.0"/>

  <property name="ireport.x" value="0"/>

  <property name="ireport.y" value="0"/>

  <parameter name="employeeId" class="java.lang.String">

  <defaultValueExpression><![CDATA[]]></defaultValueExpression>

  </parameter>

  <queryString>

  <![CDATA[select * from employees

WHERE EMPLOYEE_ID=to_number($P{employeeId})]]>

  </queryString>

  <field name="EMPLOYEE_ID" class="java.lang.Long"/>

  <field name="FIRST_NAME" class="java.lang.String"/>

  <field name="LAST_NAME" class="java.lang.String"/>

  <field name="EMAIL" class="java.lang.String"/>

  <field name="PHONE_NUMBER" class="java.lang.String"/>

  <field name="HIRE_DATE" class="java.sql.Timestamp"/>

  <field name="JOB_ID" class="java.lang.String"/>

  <field name="SALARY" class="java.math.BigDecimal"/>

  <field name="COMMISSION_PCT" class="java.math.BigDecimal"/>

  <field name="MANAGER_ID" class="java.math.BigDecimal"/>

  <field name="DEPARTMENT_ID" class="java.math.BigDecimal"/>

  <background>

  <band splitType="Stretch"/>

  </background>

  <title>

  <band height="79" splitType="Stretch"/>

  </title>

  <pageHeader>

  <band height="35" splitType="Stretch"/>

  </pageHeader>

  <columnHeader>

  <band height="61" splitType="Stretch">

  <staticText>

  <reportElement x="229" y="2" width="100" height="20" uuid="225ce4a1-d66e-4b64-bcb8-f35994d570ec"/>

  <text><![CDATA[EMPLOYEE_ID]]></text>

  </staticText>

  </band>

  </columnHeader>

  <detail>

  <band height="125" splitType="Stretch">

  <textField>

  <reportElement x="229" y="55" width="100" height="20" uuid="a8cd9d36-884a-4edf-8052-314b484e00c4"/>

  <textFieldExpression><![CDATA[$F{EMPLOYEE_ID}]]></textFieldExpression>

  </textField>

  </band>

  </detail>

  <columnFooter>

  <band height="45" splitType="Stretch"/>

  </columnFooter>

  <pageFooter>

  <band height="54" splitType="Stretch"/>

  </pageFooter>

  <summary>

  <band height="42" splitType="Stretch"/>

  </summary>

</jasperReport>

And my jsff page code is

<?xml version='1.0' encoding='UTF-8'?>

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"

                xmlns:f="http://java.sun.com/jsf/core">

 

  <af:button text="button 1" id="b1" destination="/printreportservlet?employeeId#{bindings.EmployeeId.inputValue}"/>

  <af:table value="#{bindings.EmployeesView1.collectionModel}" var="row" rows="#{bindings.EmployeesView1.rangeSize}"

            emptyText="#{bindings.EmployeesView1.viewable ? 'No data to display.' : 'Access Denied.'}"

            rowBandingInterval="0" selectedRowKeys="#{bindings.EmployeesView1.collectionModel.selectedRow}"

            selectionListener="#{bindings.EmployeesView1.collectionModel.makeCurrent}" rowSelection="single"

            fetchSize="#{bindings.EmployeesView1.rangeSize}" id="t1">

    <af:column headerText="#{bindings.EmployeesView1.hints.EmployeeId.label}" id="c1">

      <af:outputText value="#{row.EmployeeId}" shortDesc="#{bindings.EmployeesView1.hints.EmployeeId.tooltip}" id="ot1">

        <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.EmployeeId.format}"/>

      </af:outputText>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.FirstName.label}" id="c2">

      <af:outputText value="#{row.FirstName}" shortDesc="#{bindings.EmployeesView1.hints.FirstName.tooltip}" id="ot2"/>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.LastName.label}" id="c3">

      <af:outputText value="#{row.LastName}" shortDesc="#{bindings.EmployeesView1.hints.LastName.tooltip}" id="ot3"/>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.Email.label}" id="c4">

      <af:outputText value="#{row.Email}" shortDesc="#{bindings.EmployeesView1.hints.Email.tooltip}" id="ot4"/>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.PhoneNumber.label}" id="c5">

      <af:outputText value="#{row.PhoneNumber}" shortDesc="#{bindings.EmployeesView1.hints.PhoneNumber.tooltip}"

                     id="ot5"/>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.HireDate.label}" id="c6">

      <af:outputText value="#{row.HireDate}" shortDesc="#{bindings.EmployeesView1.hints.HireDate.tooltip}" id="ot6">

        <af:convertDateTime pattern="#{bindings.EmployeesView1.hints.HireDate.format}"/>

      </af:outputText>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.JobId.label}" id="c7">

      <af:outputText value="#{row.JobId}" shortDesc="#{bindings.EmployeesView1.hints.JobId.tooltip}" id="ot7"/>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.Salary.label}" id="c8">

      <af:outputText value="#{row.Salary}" shortDesc="#{bindings.EmployeesView1.hints.Salary.tooltip}" id="ot8">

        <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.Salary.format}"/>

      </af:outputText>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.CommissionPct.label}" id="c9">

      <af:outputText value="#{row.CommissionPct}" shortDesc="#{bindings.EmployeesView1.hints.CommissionPct.tooltip}"

                     id="ot9">

        <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.CommissionPct.format}"/>

      </af:outputText>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.ManagerId.label}" id="c10">

      <af:outputText value="#{row.ManagerId}" shortDesc="#{bindings.EmployeesView1.hints.ManagerId.tooltip}" id="ot10">

        <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.ManagerId.format}"/>

      </af:outputText>

    </af:column>

    <af:column headerText="#{bindings.EmployeesView1.hints.DepartmentId.label}" id="c11">

      <af:outputText value="#{row.DepartmentId}" shortDesc="#{bindings.EmployeesView1.hints.DepartmentId.tooltip}"

                     id="ot11">

        <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.DepartmentId.format}"/>

      </af:outputText>

    </af:column>

  </af:table>

</ui:composition>

The complete error code is

java.lang.NumberFormatException: null

  at java.lang.Long.parseLong(Long.java:404)

  at java.lang.Long.<init>(Long.java:702)

  at view.PrintReport1Servlet.doGet(PrintReport1Servlet.java:113)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)

  Truncated. see log file for complete stacktrace

>

<Mar 27, 2015 10:03:46 AM PKT> <Notice> <Diagnostics> <BEA-320068> <Watch "UncheckedException" in module "Module-FMWDFW" with severity "Notice" on server "DefaultServer" has triggered at Mar 27, 2015 10:03:46 AM PKT. Notification details:

WatchRuleType: Log

WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'WL-101020') OR (MSGID = 'WL-101017') OR (MSGID = 'WL-000802') OR (MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))

WatchData: DATE = Mar 27, 2015 10:03:46 AM PKT SERVER = DefaultServer MESSAGE = [ServletContext@1295794488[app:JasperServletTester module:JasperServletTester-ViewController-context-root path:null spec-version:3.0]] Servlet failed with an Exception

java.lang.NumberFormatException: null

  at java.lang.Long.parseLong(Long.java:404)

  at java.lang.Long.<init>(Long.java:702)

  at view.PrintReport1Servlet.doGet(PrintReport1Servlet.java:113)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)

  at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)

  at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)

  at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)

  at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)

  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)

  at java.security.AccessController.doPrivileged(Native Method)

  at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)

  at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)

  at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)

  at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)

  at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)

  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)

  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

  at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)

  at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)

  at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)

  at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)

  at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)

  at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)

  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)

  at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

SUBSYSTEM = HTTP USERID = <WLS Kernel> SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-101020 MACHINE = TANVIR-PC TXID =  CONTEXTID = fd43f1ae-c573-4366-9924-18a1ab1a228f-0000008d TIMESTAMP = 1427432626062 

WatchAlarmType: AutomaticReset

WatchAlarmResetPeriod: 30000

>

<oracle.dfw.impl.incident.DiagnosticsDataExtractorImpl> <DiagnosticsDataExtractorImpl> <createADRIncident> <incident 16 created with problem key "DFW-99998 [java.lang.NumberFormatException][oracle.security.jps.ee.http.JpsAbsFilter$1.run][JasperServletTester]">

<oracle.adf.common> <AdfDiagnosticsJarsVersionDumpImpl> <executeDump> <Path of the jars version dump :C:\Users\TANVIR\AppData\Roaming\JDeveloper\system12.1.3.0.41.140521.1008\DefaultDomain\servers\DefaultServer\adr\diag\ofm\defaultdomain\defaultserver\incident\incdir_16/adf_DiagnosticsJarsVersionDump24_i16.txt>

For any help I shall be very grateful

Regards

This post has been answered by aJohny on Mar 27 2015
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 24 2015
Added on Mar 27 2015
4 comments
411 views