1 Reply Latest reply on Aug 27, 2018 4:21 PM by Jim-D

    Null Pointer Exception

    Just a Num

      Problem solved. That works well;

          public void getEmpFullName(ActionEvent ae) {

              DCBindingContainer Depbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Depdcib = Depbc.findIteratorBinding("DepartmentsView1Iterator");

              RowSetIterator Depiter = Depdcib.getRowSetIterator();

              Row departmentsRow = Depiter.first();

              DCBindingContainer Empbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Empdcib = Empbc.findIteratorBinding("EmployeesView1Iterator");

              RowSetIterator Empiter = Empdcib.getRowSetIterator();

              DCBindingContainer Jobbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Jobdcib = Jobbc.findIteratorBinding("JobsView1Iterator");

              RowSetIterator Jobiter = Jobdcib.getRowSetIterator();

              ArrayList<Integer> TotalSalary = new ArrayList<Integer>();

              ArrayList<Integer> MinSalary = new ArrayList<Integer>();

              ArrayList<Integer> MaxSalary = new ArrayList<Integer>();

              int empSalary = 0;

              int empMinSalary = 0;

              int empMaxSalary = 0;

              for (int i = 0; i < Depiter.getRowCount(); i++) {

       

                    Row employeesRow = Empiter.first();

                  String depId = departmentsRow.getAttribute(0).toString();           

                  String depName = departmentsRow.getAttribute(1).toString();

                             

                  for (int j = 0; j < Empiter.getRowCount(); j++) {

                      try {

                          String empDepId = employeesRow.getAttribute(10).toString();

                          String salary = employeesRow.getAttribute(7).toString();

                          int tempSalary = Integer.parseInt(salary);

       

                          if (depId.equals(empDepId)) {

                              empSalary = empSalary + tempSalary;

                                  Row jobsRow = Jobiter.first();

                              for (int k=0; k < Jobiter.getRowCount(); k++){                           

                                  try{

                                  String jobId = jobsRow.getAttribute(0).toString();

                                  String empJobId = employeesRow.getAttribute(6).toString();

                                  String maxiSalary = jobsRow.getAttribute(3).toString();

                                  String miniSalary = jobsRow.getAttribute(2).toString();

                                      int temMaxSalary = Integer.parseInt(maxiSalary);

                                      int temMinSalary = Integer.parseInt(miniSalary);

                                     

                                      if(empJobId.equals(jobId)){

                                          empMinSalary = empMinSalary + temMinSalary;

                                          empMaxSalary = empMaxSalary + temMaxSalary;

                                      }

                                      }

                                  catch (Exception e){}

                                  jobsRow = Jobiter.next();

                              }                          

                              }                

                      }

                      catch (Exception e) {}

                   employeesRow = Empiter.next();

                  }       

                          TotalSalary.add(empSalary);

                          empSalary = 0;

                          MinSalary.add(empMinSalary);

                          empMinSalary = 0;

                          MaxSalary.add(empMaxSalary);

                          empMaxSalary = 0; 

                      if (Depiter.hasNext()) {

                          departmentsRow = Depiter.next();

                      } else {

                          break;

                      }           

                  System.out.println(depName + " " + "tot" + " : " + TotalSalary);

                  TotalSalary.clear();

                  System.out.println(depName +  " " + " min " + " : " + MinSalary);

                  MinSalary.clear();

                 System.out.println(depName +  " " + "max " + " : " + MaxSalary);

                  MaxSalary.clear();

              }

          }

      }

       

       

      Hi guys,

      Let me talk about what I want to do. I'm working on a UI kit which has 3 pages.(DepartmentsPage, EmployeesPage and JobsPage). DepartmentsId is a primary key which connects Dep and emp also jobId is primary which connects emp and jobs. So my purpose is calculating the total salaries of all departments and print it as an array. This part is done. The issue is one of the employee has no departments. While I tried to calculate min salary and max salary(they re attributes of jobs page) ı got a null pointer exception. I need to use try catch but I dont know where to use it.

      I've been trying to print salary types to console but I got an error.   Maybe you guys show me how the fix it.

       

      Here is my work.

       

        public void getEmpFullName(ActionEvent ae) {

              DCBindingContainer Depbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Depdcib = Depbc.findIteratorBinding("DepartmentsView1Iterator");

              RowSetIterator Depiter = Depdcib.getRowSetIterator();

              Row departmentsRow = Depiter.first();

              DCBindingContainer Empbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Empdcib = Empbc.findIteratorBinding("EmployeesView1Iterator");

              RowSetIterator Empiter = Empdcib.getRowSetIterator();

              DCBindingContainer Jobbc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

              DCIteratorBinding Jobdcib = Depbc.findIteratorBinding("JobsView1Iterator");

              RowSetIterator Jobiter = Depdcib.getRowSetIterator();

              ArrayList<Integer> TotalSalary = new ArrayList<Integer>();

              ArrayList<Integer> MinSalary = new ArrayList<Integer>();

              ArrayList<Integer> MaxSalary = new ArrayList<Integer>();

              int empSalary = 0;

              int empMinSalary = 0;

              int empMaxSalary = 0;

              for (int i = 0; i < Depiter.getRowCount(); i++) {

       

                  Row employeesRow = Empiter.first();

                  String depId = departmentsRow.getAttribute(0).toString();

                  String depName = departmentsRow.getAttribute(1).toString();

                 

                 

                  for (int j = 0; j < Empiter.getRowCount(); j++) {

                      try {

                          String empDepId = employeesRow.getAttribute(10).toString();

                          String salary = employeesRow.getAttribute(7).toString();

                          int tempSalary = Integer.parseInt(salary);

       

       

                          if (depId.equals(empDepId)) {

                              empSalary = empSalary + tempSalary;

       

       

                          }

                      } catch (Exception e) {

                      }

       

                      employeesRow = Empiter.next();

                  }

                  for (int k = 0; k < Jobiter.getRowCount(); k++) {

                      Row jobsRow = Jobiter.first();

                      String jobId = jobsRow.getAttribute(0).toString();

                      String empJobId = employeesRow.getAttribute(6).toString();

                      try {

                          int TempMinSalary = Integer.parseInt(jobsRow.getAttribute(2).toString());

                          int TempMaxSalary = Integer.parseInt(jobsRow.getAttribute(3).toString());

       

                          if (jobId.equals(empJobId)) {

                              empMinSalary += TempMinSalary;

                              empMaxSalary += TempMaxSalary;

                          }

                      } catch (Exception e) {

                      }

                      employeesRow = Empiter.next();

                  }

                  try {

                      if (Depiter.hasNext()) {

                          TotalSalary.add(empSalary);

                          empSalary = 0;

                          MinSalary.add(empMinSalary);

                          empMinSalary = 0;

                          MaxSalary.add(empMaxSalary);

                          empMaxSalary = 0;

                          departmentsRow = Depiter.next();

       

                      } else {

                          break;

       

                      }

       

                  } catch (Exception e) {

                  }

       

                  System.out.println(depName + "tot" + " : " + TotalSalary);

                  TotalSalary.clear();

                  System.out.println(depName + " min " + " : " + MinSalary);

                  MinSalary.clear();

                  System.out.println(depName + "max " + " : " + MaxSalary);

                  MaxSalary.clear();

              }

          }

       

      }

       

       

        • 1. Re: Null Pointer Exception
          Jim-D

          Welcome!  The Community Feedback space is intended for discussions about the Oracle Developer Community, not for product-specific questions.

          There are tips on how to find the correct space on the Getting Started  page, which also has instructions on how to change your display name so you're not just a number.

          In the ACTIONS box on the right of your post, you should be able to click on "Move", and then specify the correct space, so experts in that product can see your question.  (A moderator here can also move the post for you if you specify which Oracle product you're using.)

          Thanks and good luck!

          MOSC Move.png