|
|
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Есть база MySQL . Пишем на JAVA. И вот кусок исходного текста: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В результате когда по запросу "select sum(len) ..." возвращается NULL (т.е. в базе не встретилось ни одной записи удовлетворяющей условию where) возбуждается исключение NullPointerException в строке: InputByte = rset.getLong("inputbyte"); Может кто подскажет более простой способ обработки кроме как поставить блок try{ ... } catch {} ? Electronic Insect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 17:41:59 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Ерунду говоришь. Если в базе не найдено ниодной строки по указанному условию, то запрос должен вернуть 0 или может что другое смотря что там за тип поля которое суммируется. Даже если бы запрос возвращал NULL, то метод все равно вернул бы 0. Так уж в документации написано. Так что NullPointerException все равно не из-за этого. Давай сюда точный стек NullPointerException и точно определись в какой строке происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 17:50:07 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕрунду говоришь. Если в базе не найдено ниодной строки по указанному условию, то запрос должен вернуть 0 или может что другое смотря что там за тип поля которое суммируется. Даже если бы запрос возвращал NULL, то метод все равно вернул бы 0. Так уж в документации написано. Так что NullPointerException все равно не из-за этого. Давай сюда точный стек NullPointerException и точно определись в какой строке происходит. Никогда не говори никогда! 1. Возникает исключение точно в этой строке , на это указывает сообщение выдаваемое Eclipse (пишу под Linux) при распечатке stack Exception (там вообще только указание на эту строку). 2. Про то, что должно быть, наталкивался в форумах, но не в документации. А потому, вопрос остается открытым в том виде в котором был написан. Извини, что не могу привести точный код, нахожусь в пути... Electronic Insect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 19:12:29 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
авторНикогда не говори никогда! 1. Возникает исключение точно в этой строке , на это указывает сообщение выдаваемое Eclipse (пишу под Linux) при распечатке stack Exception (там вообще только указание на эту строку). И все же: НИКОГДА! Если исключение возникает в строке InputByte = rset.getLong("inputbyte"); То единственный вариант это rset = null. Но это должно было оборватся ещё в начале цикла. Делаем вывод что исключение возникает где-то в коде драйвера. Тогда либо драйвер кривой и его надо сменить, либо "inputbyte" у вас в реальном коде не константа, а переменная принявшая знаечние Null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 19:25:12 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
приведите stacktrace, зачем гадать? ну и если бы по ваше условие не попадало бы ни одной записи - то запрос бы не вернул ни одной строчки и в цикл вы бы не зашли :) Т.е. sum() это агрегатная функция работающая на "группах" записей - если групп нет сум выполняться не будет. пока по вашему коду или rset или stacktrace заканчивается/начинается не в этой строчке либо вы не весь код привели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2007, 00:53:29 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
insect пишет: > QuerySQL = "select sum(len) as inputbyte from monitor where " ... длинное условие ...."; А чем "select coalesce(sum(len),0)..." не устраивает? -- Алексей Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 09:10:54 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
funikovyuriприведите stacktrace, зачем гадать? ну и если бы по ваше условие не попадало бы ни одной записи - то запрос бы не вернул ни одной строчки и в цикл вы бы не зашли :) Т.е. sum() это агрегатная функция работающая на "группах" записей - если групп нет сум выполняться не будет. пока по вашему коду или rset или stacktrace заканчивается/начинается не в этой строчке либо вы не весь код привели Привожу, только не знаю чем это поможет (Eclipse выдает очень скупую информацию): java.lang.NullPointerException at com.ksv.statistic.run(statistic.java:59) В 59 строке находится InputByte = rset.getLong("inputbyte"); Начинаю думать, что какая-то проблема с JDBC драйвером. Установлена версия 3.1.12 mysql-connector-java из rpm. Это последняя версия для fedora core 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 10:15:03 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz[quot автор]Никогда не говори никогда! ...skip... либо "inputbyte" у вас в реальном коде не константа, а переменная принявшая знаечние Null. Вот тут не понял, расшифруй пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 10:26:19 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
insect java.lang.NullPointerException at com.ksv.statistic.run(statistic.java:59) В 59 строке находится InputByte = rset.getLong("inputbyte"); Либо твой код не совпадает с тем который выполняется... Либо я фиг его знает. Автобоксигна нет, rset не null... А дебажить-хть пробовал? Breakpoint там поставить? Очень помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 11:34:25 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz insect java.lang.NullPointerException at com.ksv.statistic.run(statistic.java:59) В 59 строке находится InputByte = rset.getLong("inputbyte"); Либо твой код не совпадает с тем который выполняется... Либо я фиг его знает. Автобоксигна нет, rset не null... А дебажить-хть пробовал? Breakpoint там поставить? Очень помогает. Тут проблемы т.к. Eclipse как то странно обрабатывает breakpoint в thread (вся эта канитель происходит во множестве однотипных потоков). Так вот в большинстве потоков (thread) этот самый select sum(len) ... обрабатывается правильно и возвращает длинне целое , а в некоторых возникает указанная ситуация... И чего за глюк, непонятно... хотя конечно понятно, что ошибка где то в ДНК... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 11:50:08 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
insect Blazkowicz insect java.lang.NullPointerException at com.ksv.statistic.run(statistic.java:59) В 59 строке находится InputByte = rset.getLong("inputbyte"); Либо твой код не совпадает с тем который выполняется... Либо я фиг его знает. Автобоксигна нет, rset не null... А дебажить-хть пробовал? Breakpoint там поставить? Очень помогает. Тут проблемы т.к. Eclipse как то странно обрабатывает breakpoint в thread ( вся эта канитель происходит во множестве однотипных потоков ). Так вот в большинстве потоков (thread) этот самый select sum(len) ... обрабатывается правильно и возвращает длинне целое , а в некоторых возникает указанная ситуация... И чего за глюк, непонятно... хотя конечно понятно, что ошибка где то в ДНК... Объекты JDBC шарятся между потоками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 11:52:28 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Timm ... Объекты JDBC шарятся между потоками? Нет. Пока для каждого потока отдельное соединение с базой MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 12:07:21 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
insectВот тут не понял, расшифруй пожалуйста... Я просто к примеру вдруг код который ты привел просто пример а не рабочий код коотрый на самом деле падает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 12:07:35 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Привели бы полный код вызывающий ошибку. Пока похоже на 1) вы не тот код выполняете 2) что-то все таки шарится между потоками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 16:39:08 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
funikovyuriПривели бы полный код вызывающий ошибку. Пока похоже на 1) вы не тот код выполняете 2) что-то все таки шарится между потоками Код: plaintext 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. Описание проблемы приведено выше ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:10:42 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Ну, а теперь полный результат вывода операции en.printStackTrace(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:57:35 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНу, а теперь полный результат вывода операции en.printStackTrace(); Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... Address on exception: 175371816 java.lang.NullPointerException at com.ksv.statistic.run(statistic.java:57) Вроде простейшая ситуация, но уже неделю пляски с бубном... Нашел даже в документации Sun про getLong(...), там написано, что если в результате запроса к базе возвращается NULL, то getLong возвращает 0. Но этого не происходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 09:36:53 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
С утра трезвым взглядом посмотрел на твой, без обид, дурацкий код. Нахрена людей обманывать? Если у тебя все поля шарятся между потоками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:15:08 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС утра трезвым взглядом посмотрел на твой, без обид, дурацкий код. Нахрена людей обманывать? Если у тебя все поля шарятся между потоками? Или что-то у меня все же взгляд с утра ни капли не трезвый... не шарятся ведь все таки. Все равно убери statement и resultset из полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:18:28 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС утра трезвым взглядом посмотрел на твой, без обид, дурацкий код. Нахрена людей обманывать? Если у тебя все поля шарятся между потоками? Обид не может быть, так как это макет. Я как заслуженный чукча об этом писал однако. А теперь расскажи пожалуйста чего я там пытался скрыть от общественности? Это по недомыслию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:28:19 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz BlazkowiczС утра трезвым взглядом посмотрел на твой, без обид, дурацкий код. Нахрена людей обманывать? Если у тебя все поля шарятся между потоками? Или что-то у меня все же взгляд с утра ни капли не трезвый... не шарятся ведь все таки. Все равно убери statement и resultset из полей. Убрал, счастья не принесло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:18:25 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
а если попробовать Код: plaintext 1. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:29:09 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Michael Ponomarevа если попробовать Код: plaintext 1. Пробовал, результат тот же... Michael Ponomarev и еще разумеется пробовал: Код: plaintext 1. 2. 3. И это тоже ... если бы rset == null , то вылетало бы на строке с while (reset.next())... А может это всё-таки mysql-connector-java (драйвер) ? Не хотелось бы так думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:41:41 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
Запусти в консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:58:25 |
|
||
|
Resultset возвращает null, а ожидается integer ...
|
|||
|---|---|---|---|
|
#18+
insectА может это всё-таки mysql-connector-java Не хотелось бы так думать... Если бы это был драйвер, то ошибка была бы не в строке твоего кода. Хотя может это говноэклипс так интелектуально тебе вывод зарезает. В общем цель №1 для тебя это получить нормальный полный stacktrace ошибки, а не тот обрезок что ты приводишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 13:24:17 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34373377&tid=2146468]: |
0ms |
get settings: |
17ms |
get forum list: |
26ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
44ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 322ms |
| total: | 538ms |

| 0 / 0 |
