Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4055041

AWT Modal Threads die

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      x86
    • OS:
      solaris_2.4

      Description


      Customer reports this is easier to reproduce w/ x86 and that it may
      take a couple of tries to make it happen.

      The core file has been attached to this bug report.

      Below is the thread dump of the java run time that we are having problems
      with. It seems to die at the AWT-Modal thread. My code segments are below
      --------------------------------------------------------

      SIGSEGV 11* segmentation violation
          si_signo [11]: SIGSEGV 11* segmentation violation
          si_errno [0]: Error 0
          si_code [1]: SEGV_ACCERR [addr: 0x14]

      stackbase=816A5000, stackpointer=816A3F2C

      Full thread dump:
          "Thread-35" (TID:0x804476a8, sys_thread_t:0x817b4d88) prio=5
      COM.edwardjones.cats.CatsP.OutOfData(CatsP.java:661)
      COM.edwardjones.cats.SQLQuery.run(SQLQuery.java:132)
      java.lang.Thread.run(Thread.java)
          "AWT-Modal" (TID:0x804473a0, sys_thread_t:0x816a4d88) prio=5 *current thread*
      sun.awt.motif.ModalThread.run(MDialogPeer.java:149)
          "Thread-34" (TID:0x80441cd0, sys_thread_t:0x816c6d88) prio=5
      java.lang.Object.wait(Object.java)
      sun.awt.motif.MDialogPeer.show(MDialogPeer.java:102)
      java.awt.Window.show(Window.java:116)
      COM.edwardjones.cats.CatsP.OutOfData(CatsP.java:656)
      COM.edwardjones.cats.SQLQuery.run(SQLQuery.java:132)
      java.lang.Thread.run(Thread.java)
          "Screen Updater" (TID:0x804317d0, sys_thread_t:0x81682d88) prio=4
      java.lang.Object.wait(Object.java)
      sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
      sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)
          "AWT-Motif" (TID:0x80444950, sys_thread_t:0x81660d88) prio=5
      java.lang.Thread.run(Thread.java)
          "AWT-Input" (TID:0x80444928, sys_thread_t:0x81296d88) prio=5
          "Finalizer thread" (TID:0x8042d3b0, sys_thread_t:0x81236d88) prio=1
          "Async Garbage Collector" (TID:0x8042d368, sys_thread_t:0x81214d88) prio=1
          "Idle thread" (TID:0x8042d320, sys_thread_t:0x811f2d88) prio=0
          "clock handler" (TID:0x8042d1f8, sys_thread_t:0x811d0d88) prio=11
          "main" (TID:0x8042d0a0, sys_thread_t:0x809b5b0) prio=6
      java.net.PlainSocketImpl.accept(PlainSocketImpl.java:320)
      java.net.ServerSocket.accept(ServerSocket.java:109)
      COM.edwardjones.launcher.Launcher.run(Launcher.java:66)
      COM.edwardjones.launcher.LauncherMain.main(LauncherMain.java:23)
      Monitor Cache Dump:
          java.net.PlainSocketImpl@8042E008/80464BF8 (key=0x8042e008): monitor owner: "main"
          sun.awt.motif.MToolkit@80444910/8048C130 (key=0x80444910): monitor owner: "AWT-Modal"
      Waiting to enter:
      "AWT-Motif"
      Waiting to be notified:
      "AWT-Input"
          sun.awt.motif.ModalThread@804473A0/805174D8 (key=0x804473a0): monitor owner: "AWT-Modal"
      Waiting to be notified:
      "Thread-34"
          unknown key (key=0x81214d88): monitor owner: "Async Garbage Collector"
          sun.awt.ScreenUpdater@804317D0/8048C510 (key=0x804317d0): unowned
      Waiting to be notified:
      "Screen Updater"
          COM.edwardjones.cats.CatsP@80433878/8049AEA8 (key=0x80433878): monitor owner: "Thread-34"
      Waiting to enter:
      "Thread-35"
      Registered Monitor Dump:
          Finalize me queue lock: unowned
      Waiting to be notified:
      "Finalizer thread"
          Thread queue lock: unowned
          Class lock: unowned
          Java stack lock: unowned
          Code rewrite lock: unowned
          Heap lock: unowned
          Has finalization queue lock: unowned
          Monitor IO lock: unowned
          Child death monitor: unowned
          Event monitor: unowned
          I/O monitor: unowned
          Alarm monitor: unowned
      Waiting to be notified:
      "clock handler"
          Sbrk lock: unowned
          Monitor cache lock: unowned
          Monitor registry: monitor owner: "AWT-Modal"
      Thread Alarm Q:

      ---------------------------------------
      Code:
      COM.edwardjones.cats.CatsP.OutOfData(CatsP.java:656)
            dd.pack();
            dd.show();
      NOTE: dd is a modal dialog box

      COM.edwardjones.cats.CatsP.OutOfData(CatsP.java:661)
      This is at the end of a switch statement. Full CatsP.OurOfData included.


      COM.edwardjones.cats.SQLQuery.run(SQLQuery.java:132)
      requestor.OutOfData(QueryNum);
      NOTE: requestor is a CatsP object.


      ----------------------------------------------------

        public synchronized void OutOfData(int QueryNumber) {
          downQuery();
          SQLQuery sql;
          switch(QueryNumber){
          case SUMMARY_QUERY:
            sql = new SQLQuery(this,SUMMARY_QUERY_2);
            if (sql.isQueryInited()){ sql.StartQuery(); } else {
      System.out.println("Query for Portfolio_2 not inited"); }
            if (catsb!=null){
      catsb.setMarketValues(AccountInfo,this);
            }
            break;
          case SUMMARY_QUERY_2:
            SummaryQueryDone=true;
            break;
          case DETAIL_QUERY:
            sql = new SQLQuery(this,DETAIL_QUERY_1);
            if (sql.isQueryInited()){ sql.StartQuery(); } else {
      System.out.println("Query for detail_1 not inited"); }
            break;
          case DETAIL_QUERY_1:
            sql = new SQLQuery(this,DETAIL_QUERY_0);
            if (sql.isQueryInited()){ sql.StartQuery(); } else {
      System.out.println("Query for detail_2 not inited"); }
            break;
          case DETAIL_QUERY_0:
            sql = new SQLQuery(this,DETAIL_QUERY_2);
            if (sql.isQueryInited()){ sql.StartQuery(); } else {
      System.out.println("Query for detail_2 not inited"); }
            break;
          case DETAIL_QUERY_2:
            String check;
            check = (String)list.getItem(getSelectedRow(),0);
            if (check!=null)
      detailProperties.put("Account Type:",check);
            check = (String)list.getItem(getSelectedRow(),1);
            if (check!=null)
      detailProperties.put("Quantity:" ,check);
            detailProperties.put("Closing Price:" ,
      (String)list.getItem(getSelectedRow(),3));
            check=(String)list.getItem(getSelectedRow(),4);
            if ((check!=null)&&(!check.equals(""))&&(!check.equals("0"))) {
      detailProperties.put("Value:" , check);
      setPortfolioPercent((String)list.getItem(getSelectedRow(),4),
      detailProperties);
            }
            detailProperties.put("CUSIP:" ,
      AccountCode.getCusipDisplay(
      (String)list.getItem(getSelectedRow(),5)));
            detailProperties.put("Symbol:" ,
      (String)list.getItem(getSelectedRow(),6));
            String []detailCol = (String[])list.getItem(getSelectedRow(),list.getColumns());
            check = detailCol[6];
            if (check!=null){
      detailProperties.put("Exchange:",AccountCode.getExchange(check) );}
            String []desc = new String[3];
            desc[0]=detailCol[2];
            desc[1]=detailCol[3];
            desc[2]=detailCol[4];
            detailProperties.put("Last Activity Date:",detailCol[5]);
            Container f=this;
            while(!((f=f.getParent()) instanceof Frame));
            DetailDialog dd = new DetailDialog((Frame)f,realDetailHeaders,detailProperties,"Portfolio Information - Detail Window",true);
            dd.setDescription(desc);
            dd.addCompPanel(new CatsPControls(this,dd));
            dd.buildGUI();
            if (memoBoxUsed){
      EJTextList MemoBox = new EJTextList();
      MemoBox.setMinimumRows(2);
      try {
      for (int i=0;i<MemoText.size();i++){
      MemoBox.addItem((String)MemoText.elementAt(i));
      }
      } catch (ArrayIndexOutOfBoundsException e){
      System.out.println("Size lied in CatsP: " + e.toString());
      }
      dd.addCompPanel("Memo:",MemoBox);
            }
            dd.pack();
            dd.show();
            break;
          default:
            break;
          }
        }

        Attachments

          Activity

            People

            Assignee:
            rkhansunw Robi Khan (Inactive)
            Reporter:
            drcarlso Darin Carlson
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: