title: BlackBerry: "Application is not responding; process terminated" because of UiApplication.getUiApplication().popScreen()?
body: <p>I have a Blackberry application which, when run in some emulators with touch support (ex: 9500, 9520, 9530, 9550), terminates with: </p>
  
  <p>"Application is not responding; process XPTO terminated"</p>
  
  <p>Using logs, I found out that it seems like the application is stopping in a class where I asynchronously make HTTP requests: something like:  </p>
  
  <pre><code>public class LoadingFullScreen extends FullScreen implements Runnable {
  
      private Thread actionThread = null;
  
      protected void onDisplay() {
          actionThread = new Thread(this);
          actionThread.start();
      }
  
      protected void onUndisplay() {
          if(actionThread != null &amp;&amp; actionThread.isAlive()) {
              actionThread.interrupt();
          }
      }
  
      public void run() {
          //make http requests - this is done successfully
  
          synchronized(Application.getEventLock()) {
                  Screen active = UiApplication.getUiApplication().getActiveScreen();
                  if (active instanceof LoadingFullScreen) {
                      Logger.debug("LoadingFullScreen popping screen"); //this appears in logs
                      UiApplication.getUiApplication().popScreen(active);
                      Logger.debug("LoadingFullScreen screen popped"); //this never appears in logs
                  }
          }
      }
  }
  </code></pre>
  
  <p>I launch this screen with <code>UiApplication.getUiApplication().pushModalScreen(new LoadingFullScreen())</code>  </p>
  
  <p>In the logs I can see:  </p>
  
  <pre><code>[0.0] Wed Jul 27 17:53:06 GMT 2011 - DEBUG: LoadingFullScreen popping screen
  [0.0] JVM: bklt[1] @163148: JBSC on=0
  [0.0] JVM: bklt[1] @163148: SC 0
  [0.0] JVM: bklt[1]: setTimeout 30
  [0.0] Application XPTO(212) is not responding; process terminated
  </code></pre>
  
  <p>It seems like <code>UiApplication.getUiApplication().popScreen()</code> is blocking the application, and so the OS kills the application, but why? </p>
  
  <p><strong>EDIT:</strong><br>
  I have also tried using  </p>
  
  <pre><code>UiApplication.getUiApplication().invokeLater(new Runnable() {...} };            
  </code></pre>
  
  <p>instead of  <code>synchronized(Application.getEventLock()) {...}</code> but I have the exact same result</p>
  
  <p><strong>EDIT 2:</strong><br>
  I have also tried <code>active.close()</code> instead of <code>UiApplication.getUiApplication().popScreen(active);</code> but I have the exact same result</p>
  
  <p><strong>EDIT 3:</strong>
  Using <code>javaloader</code> I got this kind of stacktrace from the emulator:  </p>
  
  <pre><code>guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011  severity:0 type:3 app:Java Exception data:
      ForcedStackTraceException
      net_rim_services_impl(4) 27 2 0x1030B000
      net_rim_os-3(4BEF0320)
       HttpConnectionManager$CleanupThread
       run
       0x3B09
  guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011  severity:0 type:3 app:Java Exception data:
      ForcedStackTraceException
      XPTO(247) 60 4 0x124A0400
      net_rim_cldc-16(4BEEF8A5)
       TextField
       getFocusRect
       0x2A61
      net_rim_cldc-12(4BEEF8A5)
       Manager
       getFocusRect
       0x717
      net_rim_cldc-12(4BEEF8A5)
       Manager
       getFocusRect
       0x717
      net_rim_cldc-12(4BEEF8A5)
       Screen
       getFocusRect
       0x9AF2
      net_rim_cldc-12(4BEEF8A5)
       Screen
       callOnExposed
       0x9D16
      net_rim_cldc-13(4BEEF8A5)
       UiEngineImpl
       &lt;private&gt;
       0x9007
      net_rim_cldc-13(4BEEF8A5)
       UiEngineImpl
       removeScreen
       0x7D08
      net_rim_cldc-12(4BEEF8A5)
       Screen
       close
       0x6B66
      XPTO-8(4E316B06)
       LoadingFullScreen$1
       run
       0x34D5
      net_rim_cldc-8(4BEEF8A5)
       Application
       dispatchInvokeLater
       0x1A87
      net_rim_cldc-8(4BEEF8A5)
       Application
       &lt;private&gt;
       0x2809
      net_rim_cldc-8(4BEEF8A5)
       Application
       processNextMessage
       0x1AEF
      net_rim_cldc-9(4BEEF8A5)
       ModalEventThread
       run
       0xBE4F
  guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011  severity:0 type:3 app:Java Exception data:
      ForcedStackTraceException
      XPTO(247) 30 2 0x139DA800
      net_rim_cldc(4BEEF8A5)
       Object
       wait
       0x9922
      net_rim_cldc-8(4BEEF8A5)
       Application
       startModalEventThread
       0x1EB8
      net_rim_cldc-13(4BEEF8A5)
       UiEngineImpl
       addScreenModal
       0x83F4
      net_rim_cldc-13(4BEEF8A5)
       UiEngineImpl
       pushModalScreen
       0x674E
      net_rim_cldc-13(4BEEF8A5)
       UiApplication
       pushModalScreen
       0x62B0
      XPTO-8(4E316B06)
       MyBaseScreen
       &lt;private&gt;
       0x3AA6
      XPTO-8(4E316B06)
       MyBaseScreen
       openTheModalScreenFunction
       0x382C
      XPTO-8(4E316B06)
       MyBaseScreen$4
       fieldChanged
       0x4271
      net_rim_cldc-11(4BEEF8A5)
       Field
       fieldChangeNotify
       0x160B
      net_rim_cldc-16(4BEEF8A5)
       TextField
       replace
       0x7A5
      net_rim_cldc-16(4BEEF8A5)
       TextField
       inputMethodTextChanged
       0x24E1
      net_rim_cldc-15(4BEEF8A5)
       PasswordEditField
       inputMethodTextChanged
       0x4F26
      net_rim_cldc-27(4BEEF8A5)
       IMContext
       dispatchInputMethodEvent
       0x1E00
      net_rim_tid-4(4BEEF8E1)
       SLInputMethod
       sendComposedText
       0x5CA1
      net_rim_tid-4(4BEEF8E1)
       SLInputMethod
       sendComposedText
       0x5BD1
      net_rim_tid_fastEuropean(4BEF034C)
       FastEuropeanInputMethod
       sendComposedText
       0x48E1
      net_rim_tid_fastEuropean(4BEF034C)
       FastEuropeanInputMethod
       dispatchConversionEvent
       0x43E3
      net_rim_tid-4(4BEEF8E1)
       SLInputMethod
       dispatchKeyEvent
       0x5309
      net_rim_tid-4(4BEEF8E1)
       SLInputMethod
       dispatchEvent
       0x63CA
      net_rim_tid_fastEuropean(4BEF034C)
       FastEuropeanInputMethod
       dispatchEvent
       0x426E
      net_rim_cldc-27(4BEEF8A5)
       InputContext
       dispatchEvent
       0x3E15
      net_rim_cldc-27(4BEEF8A5)
       IMContext
       dispatchEvent
       0x21DE
      net_rim_cldc-11(4BEEF8A5)
       Field
       dispatchEvent
       0x3739
      net_rim_cldc-16(4BEEF8A5)
       TextField
       dispatchEvent
       0x30F6
      net_rim_cldc-27(4BEEF8A5)
       EventHandler
       &lt;private&gt;
       0x1460
      net_rim_cldc-27(4BEEF8A5)
       EventHandler
       processKeyEvent
       0x1A79
      net_rim_cldc-16(4BEEF8A5)
       TextField
       processKeyEvent
       0x37F6
      net_r
  </code></pre>
  
  <p><strong>EDIT 4:</strong>
  I have tried to move the <code>run()</code> method in <code>LoadingFullScreen</code> to a new <code>Runnable</code> class, as I was told that having <code>LoadingFullScreen implement Runnable</code> could cause problems when that class is shown as a modal screen.<br>
  However, I had no luck and I still have the same problem.<br>
  Any ideas?</p>
  
  <p><strong>EDIT 5:</strong>
  Solved here: <a href="https://stackoverflow.com/questions/6849085/blackberry-application-is-not-responding-process-terminated-because-of-uiappl/6911125#6911125">BlackBerry: &quot;Application is not responding; process terminated&quot; because of UiApplication.getUiApplication().popScreen()?</a></p>