sa-jdi

 = threadTable.getSelectedRow();
    if (i < 0) {
      return;
    }
    showThreadStackMemory(dataModel.getJavaThread(i));
  }
  
  private void fireShowJavaStackTrace()
  {
    int i = threadTable.getSelectedRow();
    if (i < 0) {
      return;
    }
    showJavaStackTrace(dataModel.getJavaThread(i));
  }
  
  private void fireShowThreadInfo()
  {
    int i = threadTable.getSelectedRow();
    if (i < 0) {
      return;
    }
    showThreadInfo(dataModel.getJavaThread(i));
  }
  
  private boolean fireShowThreadCrashes()
  {
    boolean crash = false;
    for (Iterator iter = cachedThreads.iterator(); iter.hasNext();)
    {
      JavaThread t = ((CachedThread)iter.next()).getThread();
      Frame tmpFrame = t.getCurrentFrameGuess();
      RegisterMap tmpMap = t.newRegisterMap(false);
      while ((tmpFrame != null) && (!tmpFrame.isFirstFrame()))
      {
        if (tmpFrame.isSignalHandlerFrameDbg())
        {
          showThreadStackMemory(t);
          crash = true;
          break;
        }
        tmpFrame = tmpFrame.sender(tmpMap);
      }
    }
    return crash;
  }
  
  private void cache()
  {
    Threads threads = VM.getVM().getThreads();
    for (JavaThread t = threads.first(); t != null; t = t.next()) {
      if (t.isJavaThread()) {
        cachedThreads.add(new CachedThread(t));
      }
    }
  }
  
  private void decache()
  {
    cachedThreads.clear();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.JavaThreadsPanel
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

final class JFrameWrapper$1
  extends WindowAdapter
{
  private final JFrameWrapper this$0;
  
  JFrameWrapper$1(JFrameWrapper paramJFrameWrapper) {}
  
  public void windowClosing(WindowEvent e)
  {
    if (JFrameWrapper.access$000(this$0) != null) {
      JFrameWrapper.access$000(this$0).actionPerformed(null);
    }
  }
  
  public void windowActivated(WindowEvent e)
  {
    if (JFrameWrapper.access$100(this$0) != null) {
      JFrameWrapper.access$100(this$0).actionPerformed(null);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.JFrameWrapper.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;

public class JFrameWrapper
  implements FrameWrapper
{
  private JFrame frame;
  private boolean hasWindowListener;
  private ActionListener closingActionListener;
  private ActionListener activatedActionListener;
  
  public JFrameWrapper(JFrame frame)
  {
    this.frame = frame;
  }
  
  public Component getComponent()
  {
    return frame;
  }
  
  public Container getContentPane()
  {
    return frame.getContentPane();
  }
  
  public void setVisible(boolean visible)
  {
    frame.setVisible(visible);
  }
  
  public void setSize(int x, int y)
  {
    frame.setSize(x, y);
  }
  
  public void pack()
  {
    frame.pack();
  }
  
  public void show()
  {
    frame.setVisible(true);
  }
  
  public void dispose()
  {
    frame.dispose();
  }
  
  public void setBackground(Color color)
  {
    frame.setBackground(color);
  }
  
  public void setResizable(boolean resizable)
  {
    frame.setResizable(resizable);
  }
  
  public void setClosable(boolean closable)
  {
    if (closable) {
      frame.setDefaultCloseOperation(1);
    } else {
      frame.setDefaultCloseOperation(0);
    }
  }
  
  public void setClosingActionListener(ActionListener l)
  {
    closingActionListener = l;
    maybeInstallWindowListener();
  }
  
  public void setActivatedActionListener(ActionListener l)
  {
    activatedActionListener = l;
    maybeInstallWindowListener();
  }
  
  public void toFront()
  {
    frame.toFront();
    frame.requestFocus();
  }
  
  private void maybeInstallWindowListener()
  {
    if (!hasWindowListener)
    {
      frame.addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent e)
        {
          if (closingActionListener != null) {
            closingActionListener.actionPerformed(null);
          }
        }
        
        public void windowActivated(WindowEvent e)
        {
          if (activatedActionListener != null) {
            activatedActionListener.actionPerformed(null);
          }
        }
      });
      hasWindowListener = true;
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.JFrameWrapper
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionListener;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;

final class JInternalFrameWrapper$1
  extends InternalFrameAdapter
{
  private final JInternalFrameWrapper this$0;
  
  JInternalFrameWrapper$1(JInternalFrameWrapper paramJInternalFrameWrapper) {}
  
  public void internalFrameClosing(InternalFrameEvent e)
  {
    if (JInternalFrameWrapper.access$000(this$0) != null) {
      JInternalFrameWrapper.access$000(this$0).actionPerformed(null);
    }
  }
  
  public void internalFrameActivated(InternalFrameEvent e)
  {
    if (JInternalFrameWrapper.access$100(this$0) != null) {
      JInternalFrameWrapper.access$100(this$0).actionPerformed(null);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.JInternalFrameWrapper.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;

public class JInternalFrameWrapper
  implements FrameWrapper
{
  private JInternalFrame frame;
  private boolean hasWindowListener;
  private ActionListener closingActionListener;
  private ActionListener activatedActionListener;
  
  public JInternalFrameWrapper(JInternalFrame frame)
  {
    this.frame = frame;
  }
  
  public Component getComponent()
  {
    return frame;
  }
  
  public Container getContentPane()
  {
    return frame.getContentPane();
  }
  
  public void setVisible(boolean visible)
  {
    frame.setVisible(visible);
  }
  
  public void setSize(int x, int y)
  {
    frame.setSize(x, y);
  }
  
  public void pack()
  {
    frame.pack();
  }
  
  public void show()
  {
    frame.show();
  }
  
  public void dispose()
  {
    frame.dispose();
  }
  
  public void setBackground(Color color)
  {
    frame.setBackground(color);
  }
  
  public void setResizable(boolean resizable)
  {
    frame.setResizable(resizable);
  }
  
  public void setClosable(boolean closable)
  {
    frame.setClosable(closable);
  }
  
  public void setClosingActionListener(ActionListener l)
  {
    closingActionListener = l;
    maybeInstallWindowListener();
  }
  
  public void setActivatedActionListener(ActionListener l)
  {
    activatedActionListener = l;
    maybeInstallWindowListener();
  }
  
  public void toFront()
  {
    frame.toFront();
    try
    {
      frame.setSelected(true);
    }
    catch (PropertyVetoException e) {}
  }
  
  private void maybeInstallWindowListener()
  {
    if (!hasWindowListener)
    {
      frame.addInternalFrameListener(new InternalFrameAdapter()
      {
        public void internalFrameClosing(InternalFrameEvent e)
        {
          if (closingActionListener != null) {
            closingActionListener.actionPerformed(null);
          }
        }
        
        public void internalFrameActivated(InternalFrameEvent e)
        {
          if (activatedActionListener != null) {
            activatedActionListener.actionPerformed(null);
          }
        }
      });
      hasWindowListener = true;
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.JInternalFrameWrapper
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.math.BigInteger;
import javax.swing.table.AbstractTableModel;
import sun.jvm.hotspot.debugger.Address;
import sun.jvm.hotspot.debugger.UnmappedAddressException;

final class MemoryPanel$1
  extends AbstractTableModel
{
  private final MemoryPanel this$0;
  
  MemoryPanel$1(MemoryPanel paramMemoryPanel) {}
  
  public int getRowCount()
  {
    return MemoryPanel.access$000(this$0);
  }
  
  public int getColumnCount()
  {
    return 2;
  }
  
  public Object getValueAt(int row, int column)
  {
    switch (column)
    {
    case 0: 
      return MemoryPanel.access$300(this$0, MemoryPanel.access$200(this$0).add(new BigInteger(Integer.toString(row * MemoryPanel.access$100(this$0)))));
    case 1: 
      try
      {
        Address addr = MemoryPanel.access$400(this$0, MemoryPanel.access$200(this$0).add(new BigInteger(Integer.toString(row * MemoryPanel.access$100(this$0)))));
        if (addr != null) {
          return MemoryPanel.access$500(this$0, addr.getAddressAt(0L));
        }
        return MemoryPanel.access$600(this$0);
      }
      catch (UnmappedAddressException e)
      {
        return MemoryPanel.access$600(this$0);
      }
    }
    throw new RuntimeException("Column " + column + " out of bounds");
  }
  
  public boolean isCellEditable(int row, int col)
  {
    return false;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.table.AbstractTableModel;

final class MemoryPanel$10
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$10(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = Math.min(MemoryPanel.access$1200(this$0).getColumnCount() - 1, MemoryPanel.access$1100(this$0) + 1);
    MemoryPanel.access$2300(this$0, MemoryPanel.access$800(this$0), MemoryPanel.access$900(this$0), MemoryPanel.access$1000(this$0), newLead);
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.10
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;

final class MemoryPanel$11
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$11(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = MemoryPanel.access$900(this$0) - MemoryPanel.access$1900(this$0);
    int newAnchor = MemoryPanel.access$800(this$0);
    if (newLead < 0)
    {
      MemoryPanel.access$1600(this$0).pageUpOrLeft();
      newLead += MemoryPanel.access$1900(this$0);
      newAnchor += MemoryPanel.access$1900(this$0);
    }
    MemoryPanel.access$2300(this$0, newAnchor, newLead, MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.11
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;

final class MemoryPanel$12
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$12(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = MemoryPanel.access$900(this$0) + MemoryPanel.access$1900(this$0);
    int newAnchor = MemoryPanel.access$800(this$0);
    if (newLead > MemoryPanel.access$1900(this$0))
    {
      MemoryPanel.access$1600(this$0).pageDownOrRight();
      newLead -= MemoryPanel.access$1900(this$0);
      newAnchor -= MemoryPanel.access$1900(this$0);
    }
    MemoryPanel.access$2300(this$0, newAnchor, newLead, MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.12
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

final class MemoryPanel$13
  extends MouseAdapter
{
  private final MemoryPanel this$0;
  
  MemoryPanel$13(MemoryPanel paramMemoryPanel) {}
  
  public void mousePressed(MouseEvent e)
  {
    if (MemoryPanel.access$2400(this$0, e)) {
      return;
    }
    if (e.isShiftDown())
    {
      MemoryPanel.access$1700(this$0);
      return;
    }
    MemoryPanel.access$1300(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.13
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JTable;

final class MemoryPanel$14
  extends MouseMotionAdapter
{
  private final MemoryPanel this$0;
  
  MemoryPanel$14(MemoryPanel paramMemoryPanel) {}
  
  public void mouseDragged(MouseEvent e)
  {
    if (MemoryPanel.access$2400(this$0, e)) {
      return;
    }
    Point p = e.getPoint();
    if (MemoryPanel.access$1400(this$0).rowAtPoint(p) == -1)
    {
      Rectangle rect = new Rectangle();
      this$0.getBounds(rect);
      MemoryPanel.access$1500(this$0);
      if (y < y)
      {
        MemoryPanel.access$1600(this$0).scrollUpOrLeft();
        MemoryPanel.access$2300(this$0, MemoryPanel.access$800(this$0), 0, MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
      }
      else
      {
        MemoryPanel.access$1600(this$0).scrollDownOrRight();
        MemoryPanel.access$2300(this$0, MemoryPanel.access$800(this$0), MemoryPanel.access$1900(this$0), MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
      }
      MemoryPanel.access$1800(this$0);
    }
    else
    {
      MemoryPanel.access$1700(this$0);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.14
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

final class MemoryPanel$15
  extends ComponentAdapter
{
  private final MemoryPanel this$0;
  
  MemoryPanel$15(MemoryPanel paramMemoryPanel) {}
  
  public void componentResized(ComponentEvent e)
  {
    MemoryPanel.access$2500(this$0);
    MemoryPanel.access$2600(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.15
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.HierarchyEvent;
import java.awt.event.HierarchyListener;

final class MemoryPanel$16
  implements HierarchyListener
{
  private final MemoryPanel this$0;
  
  MemoryPanel$16(MemoryPanel paramMemoryPanel) {}
  
  public void hierarchyChanged(HierarchyEvent e)
  {
    MemoryPanel.access$2500(this$0);
    MemoryPanel.access$2600(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.16
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

final class MemoryPanel$17
  implements ChangeListener
{
  private final MemoryPanel this$0;
  
  MemoryPanel$17(MemoryPanel paramMemoryPanel) {}
  
  public void stateChanged(ChangeEvent e)
  {
    MemoryPanel.access$2700(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.17
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.io.PrintStream;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.TransferHandler;
import javax.swing.table.AbstractTableModel;
import sun.jvm.hotspot.debugger.Debugger;

final class MemoryPanel$2
  extends TransferHandler
{
  private final MemoryPanel this$0;
  
  MemoryPanel$2(MemoryPanel paramMemoryPanel, Debugger paramDebugger) {}
  
  protected Transferable createTransferable(JComponent c)
  {
    JTable table = (JTable)c;
    if (MemoryPanel.access$700(this$0))
    {
      StringBuffer buf = new StringBuffer();
      int iDir = MemoryPanel.access$800(this$0) < MemoryPanel.access$900(this$0) ? 1 : -1;
      int jDir = MemoryPanel.access$1000(this$0) < MemoryPanel.access$1100(this$0) ? 1 : -1;
      for (int i = MemoryPanel.access$800(this$0); i != MemoryPanel.access$900(this$0) + iDir; i += iDir)
      {
        for (int j = MemoryPanel.access$1000(this$0); j != MemoryPanel.access$1100(this$0) + jDir; j += jDir)
        {
          Object val = MemoryPanel.access$1200(this$0).getValueAt(i, j);
          buf.append(val == null ? "" : val.toString());
          if (j != MemoryPanel.access$1100(this$0)) {
            buf.append("\t");
          }
        }
        if (i != MemoryPanel.access$900(this$0)) {
          buf.append("\n");
        }
      }
      return new StringTransferable(buf.toString());
    }
    return null;
  }
  
  public int getSourceActions(JComponent c)
  {
    return 1;
  }
  
  public boolean importData(JComponent c, Transferable t)
  {
    if (canImport(c, t.getTransferDataFlavors())) {
      try
      {
        String str = (String)t.getTransferData(DataFlavor.stringFlavor);
        handleImport(c, str);
        return true;
      }
      catch (UnsupportedFlavorException ufe) {}catch (IOException ioe) {}
    }
    return false;
  }
  
  public boolean canImport(JComponent c, DataFlavor[] flavors)
  {
    for (int i = 0; i < flavors.length; i++) {
      if (DataFlavor.stringFlavor.equals(flavors[i])) {
        return true;
      }
    }
    return false;
  }
  
  private void handleImport(JComponent c, String str)
  {
    try
    {
      this$0.makeVisible(val$debugger.parseAddress(str));
      MemoryPanel.access$1300(this$0);
      MemoryPanel.access$1400(this$0).clearSelection();
    }
    catch (NumberFormatException e)
    {
      System.err.println("Unable to parse address \"" + str + "\"");
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.2
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.JTable;

final class MemoryPanel$3
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$3(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    MemoryPanel.access$1300(this$0);
    if (MemoryPanel.access$1400(this$0).getSelectedRow() == 0)
    {
      MemoryPanel.access$1600(this$0).scrollUpOrLeft();
      MemoryPanel.access$1400(this$0).setRowSelectionInterval(0, 0);
    }
    else
    {
      super.actionPerformed(e);
    }
    MemoryPanel.access$1700(this$0);
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.3
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.JTable;

final class MemoryPanel$4
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$4(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    MemoryPanel.access$1300(this$0);
    int row = MemoryPanel.access$1400(this$0).getSelectedRow();
    if (row >= MemoryPanel.access$1900(this$0))
    {
      MemoryPanel.access$1600(this$0).scrollDownOrRight();
      MemoryPanel.access$1400(this$0).setRowSelectionInterval(row, row);
    }
    else
    {
      super.actionPerformed(e);
    }
    MemoryPanel.access$1700(this$0);
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.4
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.JTable;

final class MemoryPanel$5
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$5(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    MemoryPanel.access$1300(this$0);
    int row = MemoryPanel.access$1400(this$0).getSelectedRow();
    MemoryPanel.access$1600(this$0).pageUpOrLeft();
    if (row >= 0) {
      MemoryPanel.access$1400(this$0).setRowSelectionInterval(row, row);
    }
    MemoryPanel.access$1700(this$0);
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.5
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.JTable;

final class MemoryPanel$6
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$6(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    MemoryPanel.access$1300(this$0);
    int row = MemoryPanel.access$1400(this$0).getSelectedRow();
    MemoryPanel.access$1600(this$0).pageDownOrRight();
    if (row >= 0) {
      MemoryPanel.access$1400(this$0).setRowSelectionInterval(row, row);
    }
    MemoryPanel.access$1700(this$0);
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.6
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;

final class MemoryPanel$7
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$7(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = MemoryPanel.access$900(this$0) - 1;
    int newAnchor = MemoryPanel.access$800(this$0);
    if (newLead < 0)
    {
      MemoryPanel.access$1600(this$0).scrollUpOrLeft();
      newLead++;
      newAnchor++;
    }
    MemoryPanel.access$2300(this$0, newAnchor, newLead, MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.7
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;

final class MemoryPanel$8
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$8(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = Math.max(0, MemoryPanel.access$1100(this$0) - 1);
    MemoryPanel.access$2300(this$0, MemoryPanel.access$800(this$0), MemoryPanel.access$900(this$0), MemoryPanel.access$1000(this$0), newLead);
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.8
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;

final class MemoryPanel$9
  extends MemoryPanel.ActionWrapper
{
  private final MemoryPanel this$0;
  
  MemoryPanel$9(MemoryPanel paramMemoryPanel)
  {
    super(paramMemoryPanel);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    MemoryPanel.access$1500(this$0);
    if (!MemoryPanel.access$2000(this$0))
    {
      MemoryPanel.access$2100(this$0);
      MemoryPanel.access$2200(this$0);
    }
    int newLead = MemoryPanel.access$900(this$0) + 1;
    int newAnchor = MemoryPanel.access$800(this$0);
    if (newLead > MemoryPanel.access$1900(this$0))
    {
      MemoryPanel.access$1600(this$0).scrollDownOrRight();
      newLead--;
      newAnchor--;
    }
    MemoryPanel.access$2300(this$0, newAnchor, newLead, MemoryPanel.access$1000(this$0), MemoryPanel.access$1100(this$0));
    
    MemoryPanel.access$1800(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.9
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;

abstract class MemoryPanel$ActionWrapper
  extends AbstractAction
{
  private Action parent;
  private final MemoryPanel this$0;
  
  MemoryPanel$ActionWrapper(MemoryPanel paramMemoryPanel) {}
  
  void setParent(Action parent)
  {
    this.parent = parent;
  }
  
  Action getParent()
  {
    return parent;
  }
  
  public void actionPerformed(ActionEvent e)
  {
    if (getParent() != null) {
      getParent().actionPerformed(e);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryPanel.ActionWrapper
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
null
package sun.jvm.hotspot.ui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
import sun.jvm.hotspot.debugger.Debugger;

final class MemoryViewer$1
  implements ActionListener
{
  private final MemoryViewer this$0;
  
  MemoryViewer$1(MemoryViewer paramMemoryViewer, MemoryPanel paramMemoryPanel, Debugger paramDebugger, JTextField paramJTextField) {}
  
  public void actionPerformed(ActionEvent e)
  {
    try
    {
      val$memory.makeVisible(val$debugger.parseAddress(val$addressField.getText()));
    }
    catch (NumberFormatException ex) {}
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryViewer.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import sun.jvm.hotspot.debugger.Debugger;

public class MemoryViewer
  extends JPanel
{
  public MemoryViewer(final Debugger debugger, boolean is64Bit)
  {
    final MemoryPanel memory = new MemoryPanel(debugger, is64Bit);
    memory.setBorder(GraphicsUtilities.newBorder(5));
    JPanel addressPanel = new JPanel();
    addressPanel.setLayout(new BoxLayout(addressPanel, 0));
    addressPanel.add(new JLabel("Address: "));
    final JTextField addressField = new JTextField(20);
    addressPanel.add(addressField);
    addressField.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        try
        {
          memory.makeVisible(debugger.parseAddress(addressField.getText()));
        }
        catch (NumberFormatException ex) {}
      }
    });
    setLayout(new BorderLayout());
    add(addressPanel, "North");
    add(memory, "Center");
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MemoryViewer
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.BorderLayout;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.Iterator;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;
import sun.jvm.hotspot.debugger.Address;
import sun.jvm.hotspot.debugger.OopHandle;
import sun.jvm.hotspot.oops.Klass;
import sun.jvm.hotspot.oops.Mark;
import sun.jvm.hotspot.oops.ObjectHeap;
import sun.jvm.hotspot.oops.Oop;
import sun.jvm.hotspot.oops.Symbol;
import sun.jvm.hotspot.runtime.JavaThread;
import sun.jvm.hotspot.runtime.ObjectMonitor;
import sun.jvm.hotspot.runtime.ObjectSynchronizer;
import sun.jvm.hotspot.runtime.Threads;
import sun.jvm.hotspot.runtime.VM;

public class MonitorCacheDumpPanel
  extends JPanel
{
  public MonitorCacheDumpPanel()
  {
    setLayout(new BorderLayout());
    
    JScrollPane scroller = new JScrollPane();
    JTextArea textArea = new JTextArea();
    textArea = new JTextArea();
    textArea.setEditable(false);
    textArea.setLineWrap(true);
    textArea.setWrapStyleWord(true);
    scroller.getViewport().add(textArea);
    add(scroller, "Center");
    
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    PrintStream tty = new PrintStream(bos);
    tty.println("Monitor Cache Dump (not including JVMTI raw monitors):");
    tty.println();
    dumpOn(tty);
    
    textArea.setText(bos.toString());
  }
  
  private static void dumpMonitor(PrintStream tty, ObjectMonitor mon, boolean raw)
  {
    tty.print("ObjectMonitor@" + mon.getAddress());
    if (raw) {
      tty.print("(Raw Monitor)");
    }
    tty.println();
    tty.println("  _header: 0x" + Long.toHexString(mon.header().value()));
    OopHandle obj = mon.object();
    Oop oop = heap.newOop(obj);
    tty.println("  _object: " + obj + ", a " + oop.getKlass().getName().asString());
    Address owner = mon.owner();
    tty.println("  _owner: " + owner);
    if ((!raw) && (owner != null))
    {
      JavaThread thread = threads.owningThreadFromMonitor(mon);
      if (thread != null)
      {
        tty.println("    owning thread: " + thread.getThreadName());
        if ((!thread.getAddress().equals(owner)) && 
          (!thread.isLockOwned(owner))) {
          tty.println("    WARNING! _owner doesn't fall in " + thread + "'s stack space");
        }
      }
    }
    tty.println("  _count: " + mon.count());
    tty.println("  _waiters: " + mon.waiters());
    tty.println("  _recursions: " + mon.recursions());
  }
  
  private void dumpOn(PrintStream tty)
  {
    Iterator i = ObjectSynchronizer.objectMonitorIterator();
    if (i == null)
    {
      tty.println("This version of HotSpot VM doesn't support monitor cache dump.");
      tty.println("You need 1.4.0_04, 1.4.1_01 or later versions");
      return;
    }
    while (i.hasNext())
    {
      ObjectMonitor mon = (ObjectMonitor)i.next();
      if ((mon.count() != 0L) || (mon.waiters() != 0L) || (mon.owner() != null))
      {
        OopHandle object = mon.object();
        if (object == null) {
          dumpMonitor(tty, mon, true);
        } else {
          dumpMonitor(tty, mon, false);
        }
      }
    }
  }
  
  private static Threads threads = VM.getVM().getThreads();
  private static ObjectHeap heap = VM.getVM().getObjectHeap();
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.MonitorCacheDumpPanel
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

final class ObjectHistogramPanel$1
  extends MouseAdapter
{
  private final ObjectHistogramPanel this$0;
  
  ObjectHistogramPanel$1(ObjectHistogramPanel paramObjectHistogramPanel) {}
  
  public void mouseClicked(MouseEvent evt)
  {
    if (evt.getClickCount() == 2) {
      ObjectHistogramPanel.access$000(this$0);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import sun.jvm.hotspot.oops.Klass;

public abstract interface ObjectHistogramPanel$Listener
{
  public abstract void showObjectsOfType(Klass paramKlass);
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.Listener
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;
import sun.jvm.hotspot.ui.table.LongCellRenderer;

class ObjectHistogramPanel$ObjectHistogramColummModel
  extends DefaultTableColumnModel
{
  private final String LABEL_SIZE = "Size";
  private final String LABEL_COUNT = "Count";
  private final String LABEL_DESC = "Class Description";
  private final ObjectHistogramPanel this$0;
  
  public ObjectHistogramPanel$ObjectHistogramColummModel(ObjectHistogramPanel arg1)
  {
    int PREF_WIDTH = 80;
    int MAX_WIDTH = 100;
    int HUGE_WIDTH = 140;
    
    LongCellRenderer lcRender = new LongCellRenderer();
    
    TableColumn column = new TableColumn(0, PREF_WIDTH);
    column.setHeaderValue("Size");
    column.setMaxWidth(MAX_WIDTH);
    column.setResizable(false);
    column.setCellRenderer(lcRender);
    addColumn(column);
    
    column = new TableColumn(1, PREF_WIDTH);
    column.setHeaderValue("Count");
    column.setMaxWidth(MAX_WIDTH);
    column.setResizable(false);
    column.setCellRenderer(lcRender);
    addColumn(column);
    
    column = new TableColumn(2, HUGE_WIDTH);
    column.setHeaderValue("Class Description");
    addColumn(column);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.ObjectHistogramColummModel
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import sun.jvm.hotspot.ui.table.TableModelComparator;

class ObjectHistogramPanel$ObjectHistogramTableModel$ObjectHistogramComparator
  extends TableModelComparator
{
  private final ObjectHistogramPanel.ObjectHistogramTableModel this$1;
  
  public ObjectHistogramPanel$ObjectHistogramTableModel$ObjectHistogramComparator(ObjectHistogramPanel.ObjectHistogramTableModel paramObjectHistogramTableModel1, ObjectHistogramPanel.ObjectHistogramTableModel model)
  {
    super(model);
  }
  
  public Object getValueForColumn(Object obj, int column)
  {
    ObjectHistogramPanel.ObjectHistogramTableModel omodel = (ObjectHistogramPanel.ObjectHistogramTableModel)model;
    return omodel.getValueForColumn(obj, column);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.ObjectHistogramTableModel.ObjectHistogramComparator
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import java.util.List;
import sun.jvm.hotspot.oops.ObjectHistogram;
import sun.jvm.hotspot.oops.ObjectHistogramElement;
import sun.jvm.hotspot.ui.table.SortableTableModel;
import sun.jvm.hotspot.ui.table.TableModelComparator;

class ObjectHistogramPanel$ObjectHistogramTableModel
  extends SortableTableModel
{
  private String[] columnNames = { "Size", "Count", "Class Description" };
  private Class[] columnClasses = { ObjectHistogramPanel.class$java$lang$Long == null ? (ObjectHistogramPanel.class$java$lang$Long = ObjectHistogramPanel.class$("java.lang.Long")) : ObjectHistogramPanel.class$java$lang$Long, ObjectHistogramPanel.class$java$lang$Long == null ? (ObjectHistogramPanel.class$java$lang$Long = ObjectHistogramPanel.class$("java.lang.Long")) : ObjectHistogramPanel.class$java$lang$Long, ObjectHistogramPanel.class$java$lang$String == null ? (ObjectHistogramPanel.class$java$lang$String = ObjectHistogramPanel.class$("java.lang.String")) : ObjectHistogramPanel.class$java$lang$String };
  private final ObjectHistogramPanel this$0;
  
  public ObjectHistogramPanel$ObjectHistogramTableModel(ObjectHistogramPanel paramObjectHistogramPanel, ObjectHistogram histo)
  {
    elements = histo.getElements();
    setComparator(new ObjectHistogramComparator(this));
  }
  
  public int getColumnCount()
  {
    return columnNames.length;
  }
  
  public int getRowCount()
  {
    return elements.size();
  }
  
  public String getColumnName(int col)
  {
    return columnNames[col];
  }
  
  public Class getColumnClass(int col)
  {
    return columnClasses[col];
  }
  
  public Object getValueAt(int row, int col)
  {
    return getValueForColumn(getElement(row), col);
  }
  
  public Object getValueForColumn(Object obj, int col)
  {
    ObjectHistogramElement el = (ObjectHistogramElement)obj;
    switch (col)
    {
    case 0: 
      return new Long(el.getSize());
    case 1: 
      return new Long(el.getCount());
    case 2: 
      return el.getDescription();
    }
    throw new RuntimeException("Index (" + col + ") out of bounds");
  }
  
  public ObjectHistogramElement getElement(int index)
  {
    return (ObjectHistogramElement)elements.get(index);
  }
  
  private class ObjectHistogramComparator
    extends TableModelComparator
  {
    public ObjectHistogramComparator(ObjectHistogramPanel.ObjectHistogramTableModel model)
    {
      super();
    }
    
    public Object getValueForColumn(Object obj, int column)
    {
      ObjectHistogramPanel.ObjectHistogramTableModel omodel = (ObjectHistogramPanel.ObjectHistogramTableModel)model;
      return omodel.getValueForColumn(obj, column);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.ObjectHistogramTableModel
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import com.sun.java.swing.action.ActionManager;
import com.sun.java.swing.ui.CommonToolBar;
import com.sun.java.swing.ui.StatusBar;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import sun.jvm.hotspot.ui.action.HSDBActionManager;

class ObjectHistogramPanel$ObjectHistogramToolBar
  extends CommonToolBar
{
  private JTextField searchTF;
  private final ObjectHistogramPanel this$0;
  
  public ObjectHistogramPanel$ObjectHistogramToolBar(ObjectHistogramPanel paramObjectHistogramPanel, StatusBar status)
  {
    super(HSDBActionManager.getInstance(), status);
  }
  
  protected void addComponents()
  {
    searchTF = new JTextField();
    searchTF.setToolTipText("Find in Class Description");
    
    InputMap im = searchTF.getInputMap();
    im.put(KeyStroke.getKeyStroke("ENTER"), "enterPressed");
    ActionMap am = searchTF.getActionMap();
    am.put("enterPressed", manager.getAction("find-command"));
    
    add(searchTF);
    addButton(manager.getAction("find-command"));
    addButton(manager.getAction("show-command"));
  }
  
  public String getFindText()
  {
    return searchTF.getText();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.ui.ObjectHistogramPanel.ObjectHistogramToolBar
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.ui;

import com.sun.java.swing.action.ActionManager;
import com.sun.java.swing.action.DelegateAction;
import com.sun.java.swing.ui.CommonToolBar;
import com.sun.java.swing.ui.StatusBar;
import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
impor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2019. Infinite Loop Ltd