From: art lussos Date: 2011-11-12T01:20:56+09:00 Subject: [ruby-core:40945] [ruby-trunk - Bug #5620][Open] (Net::IMAP::ResponseParseError) unexpected token LBRA (expected SPACE) Issue #5620 has been reported by art lussos. ---------------------------------------- Bug #5620: (Net::IMAP::ResponseParseError) unexpected token LBRA (expected SPACE) http://redmine.ruby-lang.org/issues/5620 Author: art lussos Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0] We have a found an issue with one of the IMAP servers ( IMAP4rev1) we connect to: (Net::IMAP::ResponseParseError) unexpected token LBRA (expected SPACE) .rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:3235:in `parse_error' .rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:3087:in `match' .rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:2226:in `rfc822_text' What is happening is that this mail server is sending down: RFC822[] {7000} when we FETCH RFC822, instead of the expected RFC822 {7000} -- notice the [] What I propose is that when we have a loop looking for the space and skip LBRA or T_RBRA. In imap.rb def rfc822_text token = match(T_ATOM) name = token.value.upcase while true token = lookahead case token.symbol when T_LBRA, T_RBRA shift_token when T_SPACE shift_token break else parse_error("unexpected token %s", token.symbol) end end return name, nstring end -- http://redmine.ruby-lang.org