土本です。
ちょっと時間を使って追いかけてみました。
メール「[Squeak-ja: 4280] Re: swiki1.5でa Primitive Has failed」(2009/07/09 09:09) に於いて
「Yoshiki Ohshima」 語りて曰く、
Yoshiki> > String class(Behavior)>>basicNew:
Yoshiki> > String class(Behavior)>>new;
Yoshiki> > String(SequenceableCollection)>>copyFrom:to:
Yoshiki> > XmlSwikiStorage>>loadPage:from:startingAt:
Yoshiki> >
Yoshiki> > 辺りからのエラーのようです。basicNew(<primitive: 71>)が正常に動かない
Yoshiki> > 状況というとオブジェクトメモリが不足しているのでしょうか?
Yoshiki>
Yoshiki> プラットフォームによってはそうかもしれませんが、new: (new;ではないで
Yoshiki> すよね)でのエラーの場合、インデックスの計算が間違っていて負の数がnew:
Yoshiki> に渡っているということもありますね。やはり実際のデータと渡っている引数
Yoshiki> の値を見てみるのが良いのではないでしょうか。
具体的には、String>>copyFrom:to:する際にコピー先サイズがマイナスになっ
ているためにprimitive:71に失敗しているようです。なぜこんな変な値になって
いるかというと、
---
t4 := t2 findString: '<version date="' startingAt: t3.
t5 := t2 findString: '" time="' staringAt: t4.
---
として見ているため、「<version date="」も「" time="」もないページ(ファ
イルが壊れているとか)でおかしな値になっているようです。
とりあえず、
swiki/<wiki名>/pages/*.xml
で、明らかに壊れているページのデータを補完してやることで解決しました。
なんというか……、Swikiは便利なんですがエラー処理甘いですね。
では。
!
土本(Florian)強 mailto: '<
[hidden email]>'
blog: '
http://d.hatena.ne.jp/Florian/' webto: '
http://florianswiki.dyndns.org/Web/'openInWorld. "do it."
!