C'est la première fois que j'ai cette erreur. Ce code obtient essentiellement la somme de chaque article vendu à une date particulière.Comment résoudre java.lang.StackOverflowError
Des conseils pour résoudre ce problème? Merci.
Statement statement = connection.createStatement(); String query = "SELECT itemcode, SUM(quantity) AS 'Total Sales Per Day' " + "FROM sales " + "WHERE real_pur_date = '" + date + "' " + "GROUP BY itemcode "; ResultSet rs = statement.executeQuery(query); // this line gets the error/exception while(rs.next()){ Vector row = new Vector(); row.add(rs.getString("itemcode")); row.add(rs.getInt("Total Sales Per Day")); dailyData.add(row); } statement.close();
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at com.mysql.jdbc.Util.handleNewInstance(Util.java:431)
at com.mysql.jdbc.ResultSetImpl.getInstance(ResultSetImpl.java:383)
at com.mysql.jdbc.MysqlIO.buildResultSetWithRows(MysqlIO.java:3140)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:491)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3118)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2288)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2709)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2677)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2627)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1556)
at posinventory.Controller.StatisticEngine.getDailyData(StatisticEngine.java:20)
at posinventory.Statistic.refreshTableDailyStat(Statistic.java:36)
at posinventory.Statistic.refreshTableDailyStat(Statistic.java:37)
at posinventory.Statistic.refreshTableDailyStat(Statistic.java:37)
at posinventory.Statistic.refreshTableDailyStat(Statistic.java:37)
Première chose: ne pas utiliser le vecteur. Déjà! Utilisez une ArrayList à la place. –
Vous n'avez pas collé assez de stacktrace pour voir le cycle. SOE est presque toujours la conséquence d'une récursion infinie. Sur l'étrange chance que ce n'est pas le cas ici, la solution serait très simple: passer à la JVM un paramètre qui augmente la taille de la pile. –
En outre, quelle est la valeur 'date' qui provoque le' StackOverflowError'? –