docs: void enterInterruptImpl(Dim.StackFrame lastFrame,
                              String threadTitle, String alertMessage) {
          statusBar.setText("Thread: " + threadTitle);
  
          showStopLine(lastFrame);
  
          if (alertMessage != null) {
              MessageDialogWrapper.showMessageDialog(this,
                                                     alertMessage,
                                                     "Exception in Script",
                                                     JOptionPane.ERROR_MESSAGE);
          }
  
          updateEnabled(true);
  
          Dim.ContextData contextData = lastFrame.contextData();
  
          JComboBox<String> ctx = context.context;
          List<String> toolTips = context.toolTips;
          context.disableUpdate();
          int frameCount = contextData.frameCount();
          ctx.removeAllItems();
          // workaround for JDK 1.4 bug that caches selected value even after
          // removeAllItems() is called
          ctx.setSelectedItem(null);
          toolTips.clear();
          for (int i = 0; i < frameCount; i++) {
              Dim.StackFrame frame = contextData.getFrame(i);
              String url = frame.getUrl();
              int lineNumber = frame.getLineNumber();
              String shortName = url;
              if (url.length() > 20) {
                  shortName = "..." + url.substring(url.length() - 17);
              }
              String location = "\"" + shortName + "\", line " + lineNumber;
              ctx.insertItemAt(location, i);
              location = "\"" + url + "\", line " + lineNumber;
              toolTips.add(location);
          }
          context.enableUpdate();
          ctx.setSelectedIndex(0);
          ctx.setMinimumSize(new Dimension(50, ctx.getMinimumSize().height));
      }