經過 trace 程式碼後,發現無法 Moblog 的原因是因為負責處理 Moblog 的物件 org.snipsnap.util.mail.PostDaemon
根本就無法啟動。
Snipsnap 載入時會去呼叫 PostDaemon
物件。在 PostDaemon
建構式中,它會從 Application
物件中取得 Configuration
物件,並且檢查電子郵件帳號、電子郵件密碼、電子郵件主機和 Moblog 密碼等四項資訊。如果其中一項資料為空的話,那麼 PostDaemon
就停止執行;反之便定時檢查電子郵件信箱中有無新信件。
重點就來了,PostDaemon
建構式中所使用的 Application
物件裡包含的資料是 snipsnap 預設狀態下的資料,也就是在 org/snipsnap/config/defaults.conf 檔案裡的資料。這個檔案的存在是為了 Snipsnap 環境初始化和安裝時的需求而準備的,而上述四項設定在預設狀態中皆為 null
!也就是說 PostDaemon
永遠都不會啟動!
這個 bug 解決之後,又遇到了另一個和 Application
相關的奇怪 bug。最後東改西測,繞了一小段路,總算是解決了。雖然我覺得解法還可以再好一些,不過現在已經跑的很順。這部份我已寄給 Snipsnap 的 leader,並且也將繁體中文的資源語系檔(包括 0.5a 和 0.5.1a)一起附加上去。不過到現在已經三天了,我還沒收到任何回信。
另外 J2SDK 1.4.2 的 regexp 有更改了一些部份,以致於 snipsnap 中的 regexp pattern 沒法正常執行,所以 http://snipsnap.org 官網在升級成 snipsnap 0.5.1a 後,也將 J2SDK 改回成 1.4.1。本站也已改成 1.4.1 版。
至於本站的改版仍在資料轉移中,最大的問題是 snipscale 0.9.1 無法在 snipsnap 0.5.1a 下正常使用,偏偏我又有一些照片用到此套件。雖然 snipsnap 有想將其整合進去,不過可能還得要好一陣子。加上 snipscale 的網站已經半年以上沒動靜了,所以目前我的想法是參考 snipscale 0.9.1 的程式碼,重新改寫一個陽春版的圖形處理巨集,並且和新版的 snipblogrolling 一起釋出,不過可能得要等到二月中左右才會完成。