Apipie / apipie-rails

Ruby on Rails API documentation tool
Apache License 2.0
2.47k stars 460 forks source link

lexical error: invalid bytes in UTF8 string. (JSON::ParserError) #738

Closed alex-quip closed 2 years ago

alex-quip commented 2 years ago

First i run

APIPIE_RECORD=params rspec spec/api/v2/my_first_controller_spec.rb

and i adjust the params in the controller then i run

APIPIE_RECORD=examples rspec spec/api/v2/my_first_controller_spec.rb

all fine so far!

but when you run the command against another controller it raises this exception

APIPIE_RECORD=examples rspec spec/api/v2/my_controller_spec.rb
Writing examples to a file
Traceback (most recent call last):
    11: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:185:in `block in <main>'
    10: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:52:in `finish'
     9: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:84:in `write_examples'
     8: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:77:in `write_examples'
     7: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:134:in `merge_old_new_examples'
     6: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:129:in `load_recorded_examples'
     5: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:30:in `load_recorded_examples'
     4: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:63:in `load_json_examples'
     3: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:51:in `deserialize_examples'
     2: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/yajl-ruby-1.3.1/lib/yajl/json_gem/parsing.rb:13:in `parse'
     1: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/yajl-ruby-1.3.1/lib/yajl.rb:37:in `parse'
/usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/yajl-ruby-1.3.1/lib/yajl.rb:37:in `parse': lexical error: invalid bytes in UTF8 string. (Yajl::ParseError)
          DF-1.4\n1 0 obj\n<<\n/Title (��)\n/Creator (��\u0000w\u0000k
                     (right here) ------^
    10: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:185:in `block in <main>'
     9: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:52:in `finish'
     8: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor.rb:84:in `write_examples'
     7: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:77:in `write_examples'
     6: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:134:in `merge_old_new_examples'
     5: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:129:in `load_recorded_examples'
     4: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:30:in `load_recorded_examples'
     3: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:63:in `load_json_examples'
     2: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/apipie-rails-0.5.19/lib/apipie/extractor/writer.rb:51:in `deserialize_examples'
     1: from /usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/yajl-ruby-1.3.1/lib/yajl/json_gem/parsing.rb:11:in `parse'
/usr/lib/fullstaq-ruby/versions/2.6-jemalloc/lib/ruby/gems/2.6.0/gems/yajl-ruby-1.3.1/lib/yajl/json_gem/parsing.rb:15:in `rescue in parse': lexical error: invalid bytes in UTF8 string. (JSON::ParserError)
          DF-1.4\n1 0 obj\n<<\n/Title (��)\n/Creator (��\u0000w\u0000k
                     (right here) ------^
JSON::ParserError:
  lexical error: invalid bytes in UTF8 string.
            DF-1.4\n1 0 obj\n<<\n/Title (??)\n/Creator (??\u0000w\u0000k
                       (right here) ------^
# ./app/controllers/api/v2/my_controller.rb:6:in `<class:MyController>'
# ./app/controllers/api/v2/my_controller.rb:1:in `<main>'
# ./spec/api/v2/my_controller_spec.rb:3:in `<top (required)>'
# ------------------
# --- Caused by: ---
# Yajl::ParseError:
#   lexical error: invalid bytes in UTF8 string.
#             DF-1.4\n1 0 obj\n<<\n/Title (??)\n/Creator (??\u0000w\u0000k
#                        (right here) ------^
#   ./app/controllers/api/v2/my_controller.rb:6:in `<class:MyController>'

possibly related to https://github.com/Apipie/apipie-rails/issues/736

mathieujobin commented 2 years ago

please reopen if this is not fix in 0.7.0

thanks