Project

General

Profile

バグ #939

openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう

Added by Osamu Koga almost 4 years ago. Updated almost 4 years ago.

Status:
終了
Priority:
通常
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

存在しないツイートを開こうとすると以下のエラーで落ちます。

/home/osak/app/mikutter/core/plugin/message_detail_view/message_detail_view.rb:6:in `block (2 levels) in <top (required)>': undefined method `uri' for nil:NilClass (NoMethodError)
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/listener.rb:25:in `call'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:97:in `block (2 levels) in call_all_listeners'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `each'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `block in call_all_listeners'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `catch'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `call_all_listeners'
        from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:39:in `block in call'
        from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run'
        from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once'
        from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run'
        from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing'
        from /home/osak/app/mikutter/core/plugin/gtk/delayer.rb:10:in `block in boot'
        from /home/osak/app/mikutter/core/plugin/gtk/mainloop.rb:10:in `main'
        from /home/osak/app/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop'
        from mikutter.rb:65:in `boot!'
        from mikutter.rb:94:in `<main>'

再現手順

  1. https://twitter.com/takahyy/status/724609897170497536 を何らかの手段(ツイート中のリンクをクリックする等)で開く
#1

Updated by Osamu Koga almost 4 years ago

  • Target version changed from 3.4 to 3.5
#2

Updated by toshi_a 初音 almost 4 years ago

  • Subject changed from 存在しないツイートを開くと落ちる to openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう
  • Assignee set to toshi_a 初音

Intent側の問題だということがわかったのでタイトルを抽象的なかんじにしておきました

以下のコードをmikutter上で実行すると再現できます。

Plugin.call(:open, 'https://twitter.com/takahyy/status/724609897170497536')

#3

Updated by toshi_a 初音 almost 4 years ago

  • Status changed from 新規 to 終了

他のIntentであれば開けるかも知れない(Webなんかは、404ページだが一応開ける)ということで、Modelを取得できなかった場合はforwardするようにしました。
結果として、vanillaの状態では「ツイートの詳細」を選んでも、結局Webブラウザが立ち上がって、そのツイートは存在しないと表示されるようになりました。

Also available in: Atom PDF