トップ «前の日記(2006-04-09) 最新 次の日記(2006-04-11)» 編集

日々の破片

著作一覧

2006-04-10

_ 愚かなバグの続き

lintを探す……。なるほど。FindBugsだとこの場合(試してないけど)無理かもしれないけど、CheckStyleあたりだと見つけそうな気もしますね。でも、((len = f.read()) <= 0) みたいなイディオム(手が覚えてるわけですな)も引っ掛けてくれそうだから使う気はないけど。1分の不愉快60回なら1時間の愚かなエラー探しのほうがましかも。(追記:一番内側の()内に出現した=はエラーとするというのならOKか。)

でも、やはり定数がガチかなというのは、全部+にするという大技が取れるから。

多分、−と=は打ち間違えても+と=は(JISキーボードでは)打ち間違えないと思う。

static final int MINUS_SAN = -3;

if (buff.get(i + MINUS_SAN) == '\n') { ... }

でも、気持ち悪いからやはり無し。なにしろ、-3の意味が、「現在のインデックス位置から3文字手前」というそのものずばりな意味(REDが0xff0000というのとは全然違う)なので定数にしようがないマイナスさん。

_ メモ

回収しました。

_ わからん

例外になるのは、クライアントがRSTを投げてるからでシュアロジカリー。

問題はなぜRSTをやつが投げてくるかだ。

可能性1.Content-Lengthよりたくさん送りつけた。

普通、そう思うよな。でも違うんだな(多分……480k分のパケットからデータ拾って長さ確認するしかないのか)

可能性2.途中に妙に長いインターバルがあくことがある(でもそn後数10パケット正しく処理してるし)

可能性3.Ackシーケンスずれ

……これ調べるのか? (というときこそスクリプトだが)

追記:っていうか、ACKが2個ずつ出てるしPUSHの立ち方が変だ。

あ、わかった。受信動作に入らないからだ。

一生懸命に話そうとしているのにそれを無視して一方的にこっちの話を垂れ流すとRSTが飛んでくるということか(まあ、そうだろう)。他山の石だな。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え