NullDereferenceExceptionとpcurl - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: NullDereferenceExceptionとpcurl (/showthread.php?tid=647) |
NullDereferenceExceptionとpcurl - okm - 10-31-2012 こんにちは。 ここのところ連投で申し訳ありません。 本日NullDereferenceExceptionが発生しました。 -------------------------------- NullDereferenceException: 非 null 値が要求されている箇所 (0x01FE8C04) に、null を使用しようとしています。 #0 in-compiler-process (0x0155ef97-943) #1 import-package-in-compiler (0x015893df-281) #2 import-package-with-loaded-packages-locked (0x01588f61-489) #3 import-pkg-and-maybe-initialize-with-loaded-packages-locked (0x01588d0e-110) #4 import-package-and-maybe-initialize (0x01587bf7-735) #5 system-import-package (0x01e85165-333) #6 new-instance-from-string (0x089a9120-276) at http://xxxx.xx.co.jp/SMAPCurl/layout/menu/load.pcurl:?? #7 [{proc} inside menuController.make-menu] (0x089768e7-219) at http://xxxx.xx.co.jp/SMAPCurl/layout/menu/load.pcurl:?? #8 closure_raw_handler (0x0155f423-27) #9 EventTarget.handle-event (0x0315fb9e-174) #10 GuiEventTarget.handle-event (0x0315fe2f-63) -----------(省略)----------- どうやらload.pcurlをインポート、コンパイルしている際に発生しているようなので、昨日変更したload.pcurlを前日までのものに戻しました。 例外は発生しなくなったように思われるのですが、pcurlで例外が発生した方いらっしゃいますか? というのも、変更したpcurlに含まれる内容は EmbeddedBrowserGraphicを利用してhtmlを表示させる処理を追加しただけで、 インポート処理部分は変更していないからです。 ※変更したmenuパッケージは、メニュー画面の表示でして、メニュー画面から各画面が開くように(つまり各パッケージのload.pcurlをダイナミックロードで読み込むように)なっています。 pcurlの生成に失敗していたのでしょうか? 関係のありそうなものってなにかありますでしょうか? よろしくお願いいたします。 RE: NullDereferenceExceptionとpcurl - kim - 10-31-2012 (10-31-2012, 11:44 AM)okm Wrote: ※変更したmenuパッケージは、メニュー画面の表示でして、メニュー画面から各画面が開くように(つまり各パッケージのload.pcurlをダイナミックロードで読み込むように)なっています。 この部分が怪しそうですね。 RE: NullDereferenceExceptionとpcurl - nmyzk - 10-31-2012 6行目と7行目の箇所を見ると、Curlのコンパイル云々というよりは okmさんの利用されているフレームワークが原因に思われます。 「new-instance-from-string」という名前からも、ダイナミックインポートの箇所だと思うのですが エラーの起点が「menuController.make-menu」ですので恐らくこういう現象ではないかと。 標準APIではなく、誰かが作成したプログラムに起因するようですので、下記をご一読戴いた後で、 エラーの原因がプログラム(load.pcurl内のソース)と予測されるのであればそのプログラムの作成者、 メニュー呼び出しの設定であればフレームワークの作成者に問い合わせてみてはいかがでしょうか? 1.menuController.make-menuでは設定ファイルかプログラムの設定値などを読んで メニュー項目を作成する。 2.メニューの作成は「new-instance-from-string」というプロシージャを利用しており、 そのプロシージャは名前から、恐らくダイナミックインポートをしていると思われる。 3.ダイナミックインポートを行った際に、解析されるプログラム(load.pcurl)に何らかの不備があり、 NullDereferenceExceptionを起こしている。 3’.あるいは、解析されるプログラムに不備はないものの、make-menuに渡されている値に不備があり、 その結果としてload.pcurlの部分でNullDereferenceExceptionを起こしている。 4.しかし、そのエラーが何処でもキャッチされていないため、アプリケーション例外として発生している。 プログラムの中身が判りませんので大雑把な事しかかけませんが、ご容赦ください。 RE: NullDereferenceExceptionとpcurl - okm - 10-31-2012 kimさん、nmyzkさん ありがとうございます。 わたしもmenuController.make-menuを疑っていたのですが、 実は変更したのはmenuUIというクラスの方で(EmbeddedBrowserGraphic追加)、 昨日以前のソースに戻してpcurl再生成、差し替えると問題の報告はなくなりました。 ※menuパッケージ内は、menuUI.scurl menuController.scurl の2クラス。 ということで、pcurlがうまくいかなかったのかな、と怪しんでおります。 RE: NullDereferenceExceptionとpcurl - kim - 10-31-2012 pcurlファイルはバイナリなので中身が壊れているかわかりませんが、バイナリエディタを使ってpcurlを比較してみると 疑問解消に近づけるかもしれませんね。 RE: NullDereferenceExceptionとpcurl - heavybugtracker - 11-01-2012 同じコードのscurl版で発生しませんか? pcurlファイルのキャッシュと関係ありませんか? また、pcurlを作成時に、デバグ情報を含むようにデプロイしたら、エラーの個所が特定できると思います。 RE: NullDereferenceExceptionとpcurl - okm - 11-09-2012 kimさん、heavybugtrackerさん ありがとうございます。 pcurlのキャッシュと関係がありそうな気がします・・。 もう少し調べてみます。 |