metaclass: (Default)
[personal profile] metaclass
Есть такой оккультный стек-трейс: https://gist.github.com/def1fa8666a8ac83130a.
Причина в том, что в деконструктор массивов кложури вида (let [sql & params] some-array] передан пустой массив и строка sql в таком случае становится null и оный null передается в jdbc драйвер.
Строка на которой валится NPE, выглядит следующим образом:
protected boolean checkForEscapes(String sql) {
sql = sql.toLowerCase();

А вопрос, вообще говоря, в следующем: почему никто не проверяет параметр на валидность хотя бы в одной точке входа в одной из трех либ (clojure.java.jdbc, apache dbcp или jaybird)?

Выглядит так, как будто нормальную проверку параметров на валидность на границах API в жабе делать не принято.

PS: [livejournal.com profile] artureg упорно убеждает меня, что "пусть валится", потому что проверка должна быть "в другом слое". Судя по всему, все разработчики думают, что обработка ошибок должна быть в другом слое :)

Date: 2012-10-10 08:31 am (UTC)
From: [identity profile] zmila.livejournal.com
http://farm6.static.flickr.com/5234/5884828092_7351ae6115.jpg

"The stack trace doesn’t fit in that large monitor in portrait mode. Guys, stop breaking your programs into many functions. Put all your code in one function and your stack traces will be shorter."
:)

Date: 2012-10-10 08:47 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Так вот зачем нужно много длинных мониторов! :)

Date: 2012-10-10 09:33 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Для длинных мониторов нужны горизонтальные логи!

Date: 2012-10-10 12:10 pm (UTC)
From: [identity profile] zmila.livejournal.com
да! адёшь логи-online-неры! :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 12th, 2025 09:04 pm
Powered by Dreamwidth Studios