Error: Null pointer

Application error occurs during processing the request.

Details: java.lang.NullPointerException

at sit.fypj.hrms.beans.MedicalClaimBean.retrieveUserMedicalClaim(MedicalClaimBean.java:319)

at sit.fypj.hrms.servlet.MedicalClaimServlet.processViewRequest(MedicalClaimServlet.java:49)

at sit.fypj.hrms.servlet.MedicalClaimServlet.doGet(MedicalClaimServlet.java:25)

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

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

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:391)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:265)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

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

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)

But i think there is nothing wrong with my wrongs!!!

[1977 byte] By [titi_coola] at [2007-11-27 4:58:26]
# 1
Something in your bean is null. Find the line the error occurs on and print out your bean values as a sanity check.
kdajania at 2007-7-12 10:14:18 > top of Java-index,Developer Tools,Debugging and Profiling Tool APIs...
# 2

/*

* Created on Apr 24, 2007

*/

package sit.fypj.hrms.beans;

import sit.fypj.hrms.database.DataRetriever;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

public class MedicalClaimBean {

private String claim;

private String billDate;

private String plans;

private String panel;

private String billNo;

private String dependent;

private String nric;

private String totalAmt;

private String eeAmt;

private String erAmt;

private String overclaimAmt;

private String status;

private String reason;

private String personnelNo;

public MedicalClaimBean() {

}

public MedicalClaimBean(

String claim,

String billDate,

String plans,

String panel,

String billNo,

String dependent,

String nric,

String totalAmt,

String eeAmt,

String erAmt,

String overclaimAmt,

String status,

String reason,

String personnelNo) {

this.claim = claim;

this.billDate = billDate;

this.plans = plans;

this.panel = panel;

this.billNo = billNo;

this.dependent = dependent;

this.nric = nric;

this.totalAmt = totalAmt;

this.eeAmt = eeAmt;

this.erAmt = erAmt;

this.overclaimAmt = overclaimAmt;

this.status = status;

this.reason = reason;

this.personnelNo = personnelNo;

}

public String getBillDate() {

return billDate;

}

public String getBillNo() {

return billNo;

}

public String getClaim() {

return claim;

}

public String getDependent() {

return dependent;

}

public String getEeAmt() {

return eeAmt;

}

public String getErAmt() {

return erAmt;

}

public String getNric() {

return nric;

}

public String getOverclaimAmt() {

return overclaimAmt;

}

public String getPanel() {

return panel;

}

public String getPersonnelNo() {

return personnelNo;

}

public String getPlans() {

return plans;

}

public String getReason() {

return reason;

}

public String getStatus() {

return status;

}

public String getTotalAmt() {

return totalAmt;

}

public void setBillDate(String string) {

billDate = string;

}

public void setBillNo(String string) {

billNo = string;

}

public void setClaim(String string) {

claim = string;

}

public void setDependent(String string) {

dependent = string;

}

public void setEeAmt(String string) {

eeAmt = string;

}

public void setErAmt(String string) {

erAmt = string;

}

public void setNric(String string) {

nric = string;

}

public void setOverclaimAmt(String string) {

overclaimAmt = string;

}

public void setPanel(String string) {

panel = string;

}

public void setPersonnelNo(String string) {

personnelNo = string;

}

public void setPlans(String string) {

plans = string;

}

public void setReason(String string) {

reason = string;

}

public void setStatus(String string) {

status = string;

}

public void setTotalAmt(String string) {

totalAmt = string;

}

public boolean createMedicalClaim(String mySqlJndiName) {

boolean success = false;

DataRetriever db = new DataRetriever(mySqlJndiName);

String sql =

"INSERT INTO MedicalClaimReceipt(claim, billDate, plans, panel, billNo, dependent, nric, totalAmt, eeAmt, erAmt, overclaimAmt, status, reason, personnelNo)";

sql += " values('"

+ claim

+ "', '"

+ billDate

+ "', '"

+ plans

+ "', '"

+ panel

+ "', '"

+ billNo

+ "', '"

+ dependent

+ "', '"

+ nric

+ "', '"

+ totalAmt

+ "', '"

+ eeAmt

+ "', '"

+ erAmt

+ "', '"

+ overclaimAmt

+ "', '"

+ status

+ "', '"

+ reason

+ "', '"

+ personnelNo

+ "');";

System.err.println(sql);

if (db.execUpdateQuery(sql) == 1) {

System.err.println(sql);

success = true;

}

System.err.println(success);

return success;

}

public boolean deleteMedicalClaimReceipt(

String mySqlJndiName,

String claim) {

boolean success = false;

DataRetriever db = new DataRetriever(mySqlJndiName);

String sql =

"DELETE from MedicalClaimReceipt where claim = '" + claim + "'";

if (db.execUpdateQuery(sql) == 1) {

System.err.println(sql);

success = true;

}

db.terminate();

return success;

}

public static ArrayList retrieveAllMedical(String mySqlJndiName) {

ArrayList list = new ArrayList();

DataRetriever db = new DataRetriever(mySqlJndiName);

try {

ResultSet rs =

db.execSelectQuery("Select * from MedicalClaimReceipt");

while (rs.next()) {

MedicalClaimBean s =

new MedicalClaimBean(

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6),

rs.getString(7),

rs.getString(8),

rs.getString(9),

rs.getString(10),

rs.getString(11),

rs.getString(12),

rs.getString(13),

rs.getString(14));

list.add(s);

}

db.terminate();

} catch (SQLException e) {

e.printStackTrace();

return null;

}

return list;

}

public static MedicalClaimBean retrieveMedicalClaim(

String mySqlJndiName,

String claim) {

MedicalClaimBean m = new MedicalClaimBean();

DataRetriever db = new DataRetriever(mySqlJndiName);

try {

ResultSet rs =

db.execSelectQuery(

"Select * from MedicalClaimReceipt where claim = '"

+ claim

+ "'");

while (rs.next()) {

m =

new MedicalClaimBean(

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6),

rs.getString(7),

rs.getString(8),

rs.getString(9),

rs.getString(10),

rs.getString(11),

rs.getString(12),

rs.getString(13),

rs.getString(14));

}

db.terminate();

} catch (SQLException e) {

e.printStackTrace();

return null;

}

return m;

}

public static ArrayList retrieveUserMedicalClaim(

String mySqlJndiName,

String personnelNo) {

ArrayList list = new ArrayList();

DataRetriever db = new DataRetriever(mySqlJndiName);

try {

ResultSet rs =

db.execSelectQuery(

"Select * from MedicalClaimReceipt where personnelNo = '"

+ personnelNo

+ "'");

while (rs.next()) {

MedicalClaimBean medicalClaim =

new MedicalClaimBean(

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6),

rs.getString(7),

rs.getString(8),

rs.getString(9),

rs.getString(10),

rs.getString(11),

rs.getString(12),

rs.getString(13),

rs.getString(14));

list.add(medicalClaim);

}

db.terminate();

} catch (SQLException e) {

e.printStackTrace();

return null;

}

return list;

}

public static ArrayList retrieveMedicalsClaim(

String mySqlJndiName,

String claim) {

ArrayList list = new ArrayList();

DataRetriever db = new DataRetriever(mySqlJndiName);

try {

ResultSet rs =

db.execSelectQuery(

"Select * from MedicalClaimReceipt where claim = '"

+ claim

+ "'");

while (rs.next()) {

MedicalClaimBean medicalClaimList =

new MedicalClaimBean(

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6),

rs.getString(7),

rs.getString(8),

rs.getString(9),

rs.getString(10),

rs.getString(11),

rs.getString(12),

rs.getString(13),

rs.getString(14));

list.add(medicalClaimList);

}

db.terminate();

} catch (SQLException e) {

e.printStackTrace();

return null;

}

return list;

}

}

this is medicalclaim.java

titi_coola at 2007-7-12 10:14:18 > top of Java-index,Developer Tools,Debugging and Profiling Tool APIs...
# 3

The code is pointing rs.getString(3)

in retrieveUserMedicalClaim()

Print all these values out to make sure nothing is null. I am assuming all your data type mappings between Java and the db are correct.

// from retrieveUserMedicalClaim

while (rs.next()) {

MedicalClaimBean medicalClaim =

new MedicalClaimBean(

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6),

rs.getString(7),

rs.getString(8),

rs.getString(9),

rs.getString(10),

rs.getString(11),

rs.getString(12),

rs.getString(13),

rs.getString(14));

list.add(medicalClaim);

}

kdajania at 2007-7-12 10:14:18 > top of Java-index,Developer Tools,Debugging and Profiling Tool APIs...