0

I working with Apache POI and in particular getCellTypeEnum. I have a problem with my program, I get the error NullPointerException when I'm reading a file:

for (int i = 0; i < nbLine; i++) { 
    Row row = sheet.getRow(i);
    for (int j = 0; j < nbCol; j++) {
        Cell cell = row.getCell(j);
        switch (cell.getCellTypeEnum()){
                case STRING:
                fileData2[i][j] = df.formatCellValue(cell);
                break;
            case NUMERIC:
                fileData2[i][j] = NumberToTextConverter.toText((cell.getNumericCellValue()));
                break;

        }
    }
}

When I try a file smaller than my original file it's working well but when I try with the original and bigger file, it returns me the NullPointerException. Cheers in advance guys !

Exception stack trace:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at t6.jFrame.jButton5ActionPerformed(jFrame.java:506)
at t6.jFrame.access$400(jFrame.java:40)
at t6.jFrame$5.actionPerformed(jFrame.java:239)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Mihai Chelaru
  • 7,614
  • 14
  • 45
  • 51
Toto D
  • 109
  • 2
  • 12
  • can you post the Exception stack? – stacker Nov 19 '18 at 12:55
  • Posted on the main message! – Toto D Nov 19 '18 at 13:00
  • 1
    I would suggest to try to simply debug to begin with. Which row is being read when you get the NPE? You could use "conditional breakpoints" to stop only when cell is null. – Davide Nov 19 '18 at 13:08
  • In fact, I tried with smaller file and it's working well but when I try with the original (biggest) file I got the error. I will try the conditional breakpoint and I keep you uptade Asap – Toto D Nov 19 '18 at 14:54
  • 1
    You should test the cell of possible null values and handle all cell-types in your switch statement and then react on null values. – sven.kwiotek Nov 19 '18 at 15:29
  • It is really weird... I checked on the debugger, I did an System.out.print on all data with 'i' and 'j' and it's corresponding to my array defined before... I also read all the data of my file and at the end it returning me the error – Toto D Nov 19 '18 at 20:48
  • I did this,`cell= row.getCell(j, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK); `. Still not working, sorry for the delay I was off. – Toto D Nov 26 '18 at 15:07

0 Answers0