Почему это приводит к ошибке «Исключение в потоке» AWT-EventQueue-0 »java.lang.OutOfMemoryError: Пространство кучи Java»? - PullRequest
1 голос
/ 08 мая 2011

Почему я получаю Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space из-за objects[i]=rs.getObject(i+1);? Существует около 10 000 записей, каждая из которых содержит около 4000 символов.

        String[] tableColumnsName = {idString, dateEnteredString, entryString, operatorString, licenseNoString, lastModifiedString};
        DefaultTableModel aModel = (DefaultTableModel) logEntryTable.getModel();
        aModel.setColumnIdentifiers(tableColumnsName);

        ResultSetMetaData rsmd;
        try {
            rsmd = rs.getMetaData();

            int colNo = rsmd.getColumnCount();
            while(rs.next()){
                Object[] objects = new Object[colNo];
                for(int i=0;i<colNo;i++){
                    objects[i]=rs.getObject(i+1);
                }
                aModel.addRow(objects);
            }
            logEntryTable.setModel(aModel);

            logEntryTable.getColumnModel().getColumn(0).setMaxWidth(30);

            rs.close();

        } catch (SQLException e) {
            e.printStackTrace();
            showCantConnectErrorDialog();
        }

Ответы [ 2 ]

3 голосов
/ 08 мая 2011

В вашей JVM закончилась память.Потенциально, когда JVM не хватает памяти OutOfMemoryError может появиться в любом месте кода, который выделяет память.Попробуйте увеличить размер кучи, используя параметр -Xmx .

1 голос
/ 08 мая 2011

Я согласен с ^^, вам нужно увеличить размер кучи или, если это невозможно, уменьшить все, чтобы получить как можно меньше места.

...