This simple code reproduces the problem. Just go back and forth and, 
eventually the app crash with OOM error. It took me 34 times with this code 
to crash.

    public void start() {
        if(current != null){
            current.show();
            return;
        }
        Form hi = new Form("Map Test", new 
BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE));
        Button btn = new Button("Show Map");
        hi.add(BorderLayout.CENTER, btn);        
        hi.show();
        Command back = new Command("Back") {
            @Override
            public void actionPerformed(ActionEvent evt) {
                hi.showBack();
            }            
        };        
        btn.addActionListener((evt) -> {
            Form hi2 = new Form("Map show", new BorderLayout());
            hi2.getToolbar().addCommandToLeftBar(back);
            hi2.setBackCommand(back);
            MapContainer map = new MapContainer(MAP_KEY);
            hi2.add(BorderLayout.CENTER, map);
            hi2.show();        
        });
    }


 I was lucky to get a stack trace only once, not from this code but from 
the actual program:

[EDT] 0:3:12,363 - Exception: java.lang.OutOfMemoryError - Failed to 
allocate a 1920012 byte allocation with 655288 free bytes and 639KB until 
OOM
java.lang.OutOfMemoryError: Failed to allocate a 1920012 byte allocation 
with 655288 free bytes and 639KB until OOM
        at com.codename1.v.w.b(Image.java:844)
        at com.codename1.v.w.w(Image.java:827)
        at com.codename1.impl.a.a(CodenameOneImplementation.java:2843)
        at com.codename1.v.w.m(Image.java:1073)
        at com.codename1.v.r.m(EncodedImage.java:680)
        at com.codename1.v.g.e.o(Style.java:1152)
        at com.codename1.impl.android.a$a.a(AndroidAsyncView.java:1225)
        at com.codename1.impl.android.d.a(AndroidImplementation.java:1866)
        at com.codename1.v.k$a.a(Component.java:5704)
        at com.codename1.v.k.s(Component.java:1937)
        at com.codename1.v.k.l(Component.java:1896)
        at com.codename1.v.k.b(Component.java:1549)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1558)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.n.a(Container.java:1439)
        at com.codename1.v.u.a(Form.java:3256)
        at com.codename1.v.k.b(Component.java:1564)
        at com.codename1.v.u.b(Form.java:3266)
        at com.codename1.v.k.d(Component.java:1538)
        at com.codename1.v.k.a(Component.java:1513)
        at com.codename1.v.k.d(Component.java:1481)
        at com.codename1.v.k.c(Component.java:1766)
        at com.codename1.v.k.i(Component.java:1713)
        at com.codename1.impl.a.q(CodenameOneImplementation.java:585)
        at com.codename1.v.q.j(Display.java:1078)
        at com.codename1.v.q.i(Display.java:1000)
        at com.codename1.v.ag.run(RunnableWrapper.java:120)
        at com.codename1.impl.b$1.run(CodenameOneThread.java:60)
        at java.lang.Thread.run(Thread.java:761)




-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/183e5bb4-6194-45c3-9b87-df6933586b54%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to