Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError:

hi,

i have to build similar sql query analizer. i am using jdbc and swing.

my frame contains jtable and jtree. jtree contains schemas and tables.

Jtables show mysql table data, when user choose table in Jtree.

its run first click and second.... But after a few click its doesnt run and i get this Exception:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

at com.mysql.jdbc.Buffer.getBytes(Buffer.java:198)

at com.mysql.jdbc.Buffer.readLenByteArray(Buffer.java:318)

at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1345)

at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2330)

at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:427)

at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2035)

at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1421)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1772)

at com.mysql.jdbc.Connection.execSQL(Connection.java:2430)

at com.mysql.jdbc.Connection.execSQL(Connection.java:2359)

at com.mysql.jdbc.Statement.executeQuery(Statement.java:1227)

at Database.getQueryRs(Database.java:50)

at Database.getColumnNames(Database.java:30)

at NewJFrame.tableDegis(NewJFrame.java:221)

at NewJFrame.jTree1ValueChanged(NewJFrame.java:196)

at NewJFrame.access$000(NewJFrame.java:21)

at NewJFrame$1.valueChanged(NewJFrame.java:93)

at javax.swing.JTree.fireValueChanged(JTree.java:2825)

at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3196)

at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:629)

at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1078)

at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:287)

at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:170)

at javax.swing.JTree.setSelectionPath(JTree.java:1600)

at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2410)

at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3619)

at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3558)

at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:262)

at java.awt.Component.processMouseEvent(Component.java:6035)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058)

privatevoid jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt){

try{

DefaultMutableTreeNode node = (DefaultMutableTreeNode)

jTree1.getLastSelectedPathComponent();

if (node ==null)return;

if (node.isLeaf()){

if(node.getLevel() > 1){

System.out.println(node.getParent());

tableDegis(node.getParent().toString(),node.toString());

}

}else{

}

}catch(Exception e){

}

}

privatevoid tableDegis(String schema,String table){

DefaultTableModel tablemodel =new DefaultTableModel();

tablemodel.setDataVector(db.getData(schema,table),db.getColumnNames(schema,table));

jTable1.setModel(tablemodel);

System.out.println(db.getColumnNames(schema,table));

System.gc();

}

public Vector getColumnNames(String schemaName,String tableName){

Vector<String> columnNames =new Vector<String>();

try{

ResultSet rs = getQueryRs(schemaName,tableName);

ResultSetMetaData md = rs.getMetaData();

int columns = md.getColumnCount();

for (int i = 1; i <= columns; i++){

columnNames.addElement( md.getColumnName(i) );

}

}catch(Exception e){}

System.gc();

return columnNames;

}

public ResultSet getQueryRs(String schemaName,String tableName){

ResultSet rs =null;

try{

String sql ="Select * from "+tableName;

connection.setCatalog(schemaName);

Statement stmt3 = connection.createStatement();

rs = stmt3.executeQuery( sql );

}catch(Exception e){

}

System.gc();

return rs;

}

public Vector getData(String schemaName,String tableName){

Vector<Vector><Object>> data =new Vector<Vector><Object>>();

try{

ResultSet rs = getQueryRs(schemaName,tableName);

ResultSetMetaData md = rs.getMetaData();

int columns = md.getColumnCount();

while (rs.next()){

Vector<Object> row =new Vector<Object>(columns);

for (int i = 1; i <= columns; i++){

row.addElement( rs.getObject(i) );

}

data.addElement( row );

}

}catch(Exception e){}

System.gc();

return data;

}

[7173 byte] By [nazmia] at [2007-11-27 5:35:13]
# 1
I would try in another forum, if I were you. Seems your error isn't very swing specific. Maybe in the JDBC forum ( http://forum.java.sun.com/forum.jspa?forumID=48).
rebola at 2007-7-12 15:04:04 > top of Java-index,Desktop,Core GUI APIs...
# 2
thanks for reply. i found problem.
nazmia at 2007-7-12 15:04:04 > top of Java-index,Desktop,Core GUI APIs...