トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/189

ページの作成や編集にはユーザ登録が必要です。

lib/Wiki.pm line 364

  • 投稿者: 本多
  • カテゴリ: 本体
  • 優先度: 普通
  • 状態: 却下
  • 日時: 2004年05月21日 09時32分18秒

 内容

ファイルをアップロードするときに「Undefined subroutine CGI2::upload」というエラーが出るのでFAQにあるとおり新しいCGI.pmをインストールしました。

するとファイルの編集・保存時に別のInternal Server ERROR 500が出ました(ただしファイルは正しく保存できているようです)

Internal Server ERROR 500のままじゃ、わけがわからないのでKCatch 1.13をインストールしてWiki.cgiのuse CGIの前の行にuse KCatch qw( execdata); DATAと記述を入れて実行したところ、

[wiki.cgi:30:die] Can't call method "hook" on an undefined value at lib/Wiki.pm line 364.

というエラーメッセージを得られました。

そこで(わけもわからず)、この行

$obj->hook($self,$name,@_);

をコメントアウトしたら確かに保存字のエラーは消えたのですが、今度は上部に現れる「編集・差分・ソース・PDF」というボタンが現れなくなりました(新規で既にあるファイルを指定したりMenuにと書いておけば編集はできはするのですが、不便です)

推測ですがこの行のhook()は関数ポインタで、objによって色々な関数に置き換えられているんだと思うのですが、「保存時」に呼び出されるときhook()関数ポインタに関数定義が割り付けられていない状態のようです。

CGI.pmを入れ替えてからの現象なのですが、CGI.pmを元に戻しても治らなくなってしまいました。

環境はSolaris 8Perl 5.005_03FreeStyle Wiki 3.5.5と、なっています。

調べ方、修正方法、手がかりなどございましたら、ご指摘願えますでしょうか。

 コメント

  • すいません。誤報だったようです。再び、最初から新規にインストールしなおしたら正常に動作しました。ソースコードは、KCatch以外いじってないのでログイン後の何かの設定か、プラグインによる影響かもしれませんが、現在現象は発生しなくなりました。また再現したら再現方法を報告します。 - 本多 (2004年05月21日 10時09分06秒)
お名前: コメント:

最終更新時間:2004年05月21日 10時09分30秒