App works fine on simulator but showing NullPointerException in device

70 views
Skip to first unread message

khanhdq...@gmail.com

unread,
Mar 25, 2014, 12:35:37 PM3/25/14
to codenameone...@googlegroups.com
Hi,
My app works fine on simulatior but sometimes it's showing NullPointerException in my device.
I have a List of containers. NPE happens sometimes if i scroll this list.
Can someone please let me know what's the problem?
Thanks a lot.

This is my stack trace :

03-25 23:29:04.150: W/System.err(22214): java.lang.NullPointerException
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.TextArea.initRowString(TextArea.java:971)
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.TextArea.getRowStrings(TextArea.java:684)
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.TextArea.getLines(TextArea.java:698)
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.TextArea.getActualRows(TextArea.java:643)
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.plaf.DefaultLookAndFeel.getTextAreaSize(DefaultLookAndFeel.java:869)
03-25 23:29:04.155: W/System.err(22214):     at com.codename1.ui.TextArea.calcPreferredSize(TextArea.java:1033)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Component.preferredSize(Component.java:1731)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Component.getPreferredSize(Component.java:627)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Component.getPreferredH(Component.java:713)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.layouts.BoxLayout.layoutContainer(BoxLayout.java:91)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Container.doLayout(Container.java:1028)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Container.layoutContainer(Container.java:1020)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Container.doLayout(Container.java:1033)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Container.layoutContainer(Container.java:1020)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.Container.revalidate(Container.java:827)
03-25 23:29:04.160: W/System.err(22214):     at com.codename1.ui.list.GenericListCellRenderer.setComponentValue(GenericListCellRenderer.java:484)
03-25 23:29:04.165: W/System.err(22214):     at com.codename1.ui.list.GenericListCellRenderer.getCellRendererComponent(GenericListCellRenderer.java:344)
03-25 23:29:04.165: W/System.err(22214):     at com.codename1.ui.list.GenericListCellRenderer.getListCellRendererComponent(GenericListCellRenderer.java:396)
03-25 23:29:04.165: W/System.err(22214):     at userclasses.StateMachine$1.getListCellRendererComponent(StateMachine.java:108)
03-25 23:29:04.165: W/System.err(22214):     at com.codename1.ui.List.setShouldCalcPreferredSize(List.java:562)
03-25 23:29:04.165: W/System.err(22214):     at com.codename1.ui.List.dataChanged(List.java:571)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.List$Listeners.dataChanged(List.java:732)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.util.EventDispatcher.fireDataChangeSync(EventDispatcher.java:309)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.util.EventDispatcher.access$600(EventDispatcher.java:41)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.util.EventDispatcher$CallbackClass.run(EventDispatcher.java:111)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.Display.processSerialCalls(Display.java:1075)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.Display.edtLoopImpl(Display.java:1019)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.Display.mainEDTLoop(Display.java:925)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
03-25 23:29:04.170: W/System.err(22214):     at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
03-25 23:29:04.170: W/System.err(22214):     at java.lang.Thread.run(Thread.java:841)
03-25 23:29:04.175: W/ResourceType(22214): No package identifier when getting value for resource number 0x00000000



Shai Almog

unread,
Mar 25, 2014, 3:21:37 PM3/25/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
it looks like you have an EDT violation somewhere along the way. Did you run with the EDT violation detection code in the simulator?

khanhdq...@gmail.com

unread,
Mar 25, 2014, 10:15:18 PM3/25/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
I click on the List in Component Inspector and got this EDT error :
EDT violation detected!
com
.codename1.impl.javase.JavaSEPort$EDTViolation: EDT Violation Stack!
    at com
.codename1.impl.javase.JavaSEPort.checkEDT(JavaSEPort.java:358)
    at com
.codename1.impl.javase.JavaSEPort.isNativeInputSupported(JavaSEPort.java:2479)
    at com
.codename1.ui.Display.isNativeInputSupported(Display.java:2306)
    at com
.codename1.ui.TextArea.setText(TextArea.java:406)
EDT violation detected
!
    at com
.codename1.ui.list.GenericListCellRenderer.setComponentValue(GenericListCellRenderer.java:520)
    at com
.codename1.ui.list.GenericListCellRenderer.getCellRendererComponent(GenericListCellRenderer.java:342)
    at com
.codename1.ui.list.GenericListCellRenderer.getListCellRendererComponent(GenericListCellRenderer.java:394)
    at userclasses
.StateMachine$1.getListCellRendererComponent(StateMachine.java:108)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSizeImpl(DefaultLookAndFeel.java:777)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSize(DefaultLookAndFeel.java:731)
    at com
.codename1.ui.List.calcPreferredSize(List.java:2025)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.ui.layouts.BorderLayout.getPreferredSize(BorderLayout.java:372)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.impl.javase.ComponentTreeInspector$2.valueChanged(ComponentTreeInspector.java:78)
    at javax
.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
    at javax
.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:187)
    at javax
.swing.JTree.setSelectionPath(JTree.java:1631)
    at javax
.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2373)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3589)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3528)
    at java
.awt.Component.processMouseEvent(Component.java:6502)
    at javax
.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java
.awt.Component.processEvent(Component.java:6270)
    at java
.awt.Container.processEvent(Container.java:2229)
    at java
.awt.Component.dispatchEventImpl(Component.java:4861)
    at java
.awt.Container.dispatchEventImpl(Container.java:2287)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java
.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
    at java
.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java
.awt.Container.dispatchEventImpl(Container.java:2273)
    at java
.awt.Window.dispatchEventImpl(Window.java:2719)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    at java
.awt.EventQueue.access$200(EventQueue.java:103)
    at java
.awt.EventQueue$3.run(EventQueue.java:688)
    at java
.awt.EventQueue$3.run(EventQueue.java:686)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java
.awt.EventQueue$4.run(EventQueue.java:702)
    at java
.awt.EventQueue$4.run(EventQueue.java:700)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    at java
.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java
.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java
.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java
.awt.EventDispatchThread.run(EventDispatchThread.java:91)
com
.codename1.impl.javase.JavaSEPort$EDTViolation: EDT Violation Stack!
    at com
.codename1.impl.javase.JavaSEPort.checkEDT(JavaSEPort.java:358)
    at com
.codename1.impl.javase.JavaSEPort.stringWidth(JavaSEPort.java:3690)
    at com
.codename1.ui.Font.stringWidth(Font.java:346)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getPreferredSize(DefaultLookAndFeel.java:678)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getLabelPreferredSize(DefaultLookAndFeel.java:648)
    at com
.codename1.ui.Label.calcPreferredSize(Label.java:345)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.layouts.BoxLayout.getPreferredSize(BoxLayout.java:170)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
EDT violation detected
!
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.layouts.BoxLayout.getPreferredSize(BoxLayout.java:170)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSizeImpl(DefaultLookAndFeel.java:783)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSize(DefaultLookAndFeel.java:731)
    at com
.codename1.ui.List.calcPreferredSize(List.java:2025)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.ui.layouts.BorderLayout.getPreferredSize(BorderLayout.java:372)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.impl.javase.ComponentTreeInspector$2.valueChanged(ComponentTreeInspector.java:78)
    at javax
.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
    at javax
.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:187)
    at javax
.swing.JTree.setSelectionPath(JTree.java:1631)
    at javax
.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2373)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3589)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3528)
    at java
.awt.Component.processMouseEvent(Component.java:6502)
    at javax
.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java
.awt.Component.processEvent(Component.java:6270)
    at java
.awt.Container.processEvent(Container.java:2229)
    at java
.awt.Component.dispatchEventImpl(Component.java:4861)
    at java
.awt.Container.dispatchEventImpl(Container.java:2287)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java
.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
    at java
.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java
.awt.Container.dispatchEventImpl(Container.java:2273)
    at java
.awt.Window.dispatchEventImpl(Window.java:2719)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    at java
.awt.EventQueue.access$200(EventQueue.java:103)
    at java
.awt.EventQueue$3.run(EventQueue.java:688)
    at java
.awt.EventQueue$3.run(EventQueue.java:686)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java
.awt.EventQueue$4.run(EventQueue.java:702)
    at java
.awt.EventQueue$4.run(EventQueue.java:700)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    at java
.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java
.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java
.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java
.awt.EventDispatchThread.run(EventDispatchThread.java:91)
com
.codename1.impl.javase.JavaSEPort$EDTViolation: EDT Violation Stack!
    at com
.codename1.impl.javase.JavaSEPort.checkEDT(JavaSEPort.java:358)
    at com
.codename1.impl.javase.JavaSEPort.getHeight(JavaSEPort.java:3709)
    at com
.codename1.ui.Font.getHeight(Font.java:365)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getPreferredSize(DefaultLookAndFeel.java:679)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getLabelPreferredSize(DefaultLookAndFeel.java:648)
    at com
.codename1.ui.Label.calcPreferredSize(Label.java:345)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.layouts.BoxLayout.getPreferredSize(BoxLayout.java:170)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
EDT violation detected
!
    at com
.codename1.ui.layouts.BoxLayout.getPreferredSize(BoxLayout.java:170)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSizeImpl(DefaultLookAndFeel.java:783)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getListPreferredSize(DefaultLookAndFeel.java:731)
    at com
.codename1.ui.List.calcPreferredSize(List.java:2025)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.ui.layouts.BorderLayout.getPreferredSize(BorderLayout.java:372)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredW(Component.java:703)
    at com
.codename1.impl.javase.ComponentTreeInspector$2.valueChanged(ComponentTreeInspector.java:78)
    at javax
.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
    at javax
.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
    at javax
.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:187)
    at javax
.swing.JTree.setSelectionPath(JTree.java:1631)
    at javax
.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2373)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3589)
    at javax
.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3528)
    at java
.awt.Component.processMouseEvent(Component.java:6502)
    at javax
.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java
.awt.Component.processEvent(Component.java:6270)
    at java
.awt.Container.processEvent(Container.java:2229)
    at java
.awt.Component.dispatchEventImpl(Component.java:4861)
    at java
.awt.Container.dispatchEventImpl(Container.java:2287)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java
.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
    at java
.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java
.awt.Container.dispatchEventImpl(Container.java:2273)
    at java
.awt.Window.dispatchEventImpl(Window.java:2719)
    at java
.awt.Component.dispatchEvent(Component.java:4687)
    at java
.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    at java
.awt.EventQueue.access$200(EventQueue.java:103)
    at java
.awt.EventQueue$3.run(EventQueue.java:688)
    at java
.awt.EventQueue$3.run(EventQueue.java:686)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java
.awt.EventQueue$4.run(EventQueue.java:702)
    at java
.awt.EventQueue$4.run(EventQueue.java:700)
    at java
.security.AccessController.doPrivileged(Native Method)
    at java
.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java
.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    at java
.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java
.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java
.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java
.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java
.awt.EventDispatchThread.run(EventDispatchThread.java:91)
com
.codename1.impl.javase.JavaSEPort$EDTViolation: EDT Violation Stack!
    at com
.codename1.impl.javase.JavaSEPort.checkEDT(JavaSEPort.java:358)
    at com
.codename1.impl.javase.JavaSEPort.charWidth(JavaSEPort.java:3701)
    at com
.codename1.ui.Font.charWidth(Font.java:356)
    at com
.codename1.ui.plaf.DefaultLookAndFeel.getTextAreaSize(DefaultLookAndFeel.java:865)
    at com
.codename1.ui.TextArea.calcPreferredSize(TextArea.java:1033)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)
    at com
.codename1.ui.layouts.BoxLayout.getPreferredSize(BoxLayout.java:170)
    at com
.codename1.ui.Container.calcPreferredSize(Container.java:1428)
    at com
.codename1.ui.Component.preferredSize(Component.java:1731)
    at com
.codename1.ui.Component.getPreferredSize(Component.java:627)
    at com
.codename1.ui.Component.getPreferredH(Component.java:713)

Below is my code :
private void populateArticleList(Form f) {
       
final Resources res = fetchResourceFile();
       
final List list = findList(f);
       
int thumbWidth = Display.getInstance().getDisplayWidth() / 2;
       
int thumbHeight = (int) (thumbWidth / 1.52);
       
final Dimension thumbSize = new Dimension(thumbWidth, thumbHeight);
       
Component selected = createContainer(res, "LoopData");
       
Component unselected = createContainer(res, "LoopData");
        list
.setRenderer(new GenericListCellRenderer(selected, unselected) {
           
public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {
               
if (list.size() < 1) {
                    fetchMore
(list, "");
               
} else {
                   
if ((index + 5) >= list.size()) {
                       
HashMap h = (HashMap) list.getModel().getItemAt(list.size() - 1);
                       
if (h != null) {
                           
String nextpagelink = (String) h.get("nextpagelink");
                           
if (nextpagelink != null) {
                                fetchMore
(list, nextpagelink);
                           
}
                       
}
                   
}
               
}
               
HashMap hm = (HashMap) list.getModel().getItemAt(index);
               
if (hm != null) {
                    addAvatar
(list, hm, index);
               
}

               
return super.getListCellRendererComponent(list, value, index, isSelected);
           
}

           
private void addAvatar(List list, HashMap hm, int i) {
               
String url = hm.get("thumb").toString();
               
String cacheId = hm.get("thumb").toString();
               
Image img = (Image) hm.get("thumbimg");
               
if (img == null && hm.get("fetching") == null) {
                    hm
.put("fetching", Boolean.TRUE);
                   
ImageDownloadService.createImageToStorage(url, list, i, "thumbimg", cacheId, thumbSize, PRIORITY_LOW);
               
}
           
}
       
});
   
}

   
private void fetchMore(final List list, String nextpagelink) {
       
System.out.println("Fetching more...");
       
ContentService cs;
        cs
= new ContentService() {
           
@Override
           
protected void readResponse(InputStream input) throws IOException {
               
JSONParser p = new JSONParser();
               
Map jsonData = p.parseJSON(new InputStreamReader(input));
               
ArrayList arListArc = (ArrayList) jsonData.get("root");
               
for (int i = 0; i < arListArc.size(); i++) {
                   
try {
                       
HashMap hm = (HashMap) arListArc.get(i);
                        list
.addItem(hm);
                   
} catch (Exception ex) {
                       
System.out.println(ex.toString());
                   
}
               
}
           
}

       
};
        cs
.setLink("http://www.baomoi.com/Home/GiaiTri.epi");
       
if (nextpagelink != "") {
            cs
.setLink(nextpagelink);
       
}
        cs
.setType("list");        
       
NetworkManager.getInstance().addToQueue(cs);        
   
}

Shai Almog

unread,
Mar 26, 2014, 1:41:22 AM3/26/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
due to obvious reasons the component inspector violates the EDT.

khanhdq...@gmail.com

unread,
Mar 26, 2014, 2:53:46 AM3/26/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
So there is no EDT violation.
This is my code, it's work fine on simulator but throw NullPointerException in my android device

Shai Almog

unread,
Mar 26, 2014, 2:13:30 PM3/26/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
do you have a stack trace or some other means of narrowing it down to an approximate area?
Its a bit much to compile in my head.

khanhdq...@gmail.com

unread,
Mar 27, 2014, 4:31:45 AM3/27/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
This problem is solved when I switch to use ListCellRenderer instead of GenericRenderer.

Shai Almog

unread,
Mar 27, 2014, 2:36:15 PM3/27/14
to codenameone...@googlegroups.com, khanhdq...@gmail.com
Hi,
how are you using the generic list cell renderer?

ba.kri...@gmail.com

unread,
Jun 9, 2015, 4:51:28 AM6/9/15
to codenameone...@googlegroups.com, khanhdq...@gmail.com
I have facing the same issue when add scroll property to the textarea. It works fine in simulator but throwing NPE when data added into the textarea.
...

Shai Almog

unread,
Jun 9, 2015, 1:19:14 PM6/9/15
to codenameone...@googlegroups.com, ba.kri...@gmail.com, ba.kri...@gmail.com, khanhdq...@gmail.com
That doesn't sound related. I suggest opening a discussion of your own with a proper question and not reopening old threads.
Reply all
Reply to author
Forward
0 new messages