[KVASIR-123] ymirプラグインがコンパイルエラーを起こす Created: 2007-03-18  Updated: 2007-03-19  Resolved: 2007-03-19

Status: Closed
Project: Kvasir/Sora
Component/s: plugin/org.seasar.kvasir.cms.ymir
Affects Version/s: 3.0.0-EA4-SNAPSHOT
Fix Version/s: 3.0.0-EA4-SNAPSHOT

Type: Bug Priority: Trivial
Reporter: hanizo Assignee: skirnir
Resolution: Fixed Votes: 0
Labels: None
Environment:

MacOSX, Rev.1838



 Description   

ymirプラグインがZptインタフェースの実装メソッドbuildTemplateContextでコンパイルエラーを起こす。



 Comments   
Comment by skirnir [ 2007-03-19 ]

調査の結果、原因はymir-extensionのビルドに失敗していることでした。ただ、
build.shに問題があったためymir-extensionのビルドに失敗しても処理が中断
されずにymirプラグインのビルドまで行ってしまっていました。そこでまずbuild.sh
を修正しました。

次にymir-extensionのビルド失敗はあるテストケースでfailしていたことが原因
でした。これはymir-extensionのテストコードと、ymir-extensionがtest scopeで
依存しているymirのテストコードに重複するクラスがあって、Windows環境とUNIX
環境とで読み込まれるクラスが違う(クラスローディングの順番が違うということ
らしい)のが原因でしたので、コードが重複しないようにしました。

さらに今回の件とは無関係ですがkvasir-utilのとあるテストケースがUNIX環境で
failする現象が見つかったためこちらもfixしました。

Comment by skirnir [ 2007-03-19 ]

UNIX系の環境で再現したのでreopenします。

Comment by hanizo [ 2007-03-18 ]

ymir-extensionのソース上ではZptインタフェースは正しく記述されているため、
ローカルの問題として一度クローズ。

Comment by hanizo [ 2007-03-18 ]

エラーを起こすのはKvasirZpt.java。

表層的な原因としてはZptインタフェースのbuildTemplateContextはLocaleを必要としないことに対して、KvasirZpt#buildTemplateContextでは内部でZptPageProcessor#buildTemplateContext
(こちらはLocaleが必要)を呼ぶために引数でLocaleを要求しているため、
結果的に未実装状態になっているから。

暫定的に下記diffにて回避はできた。

===================================================================
— KvasirZpt.java (revision 1838)
+++ KvasirZpt.java (working copy)
@@ -28,15 +28,32 @@
{
}

+ public void buildTemplateContext(TemplateContext context,
+ ServletContext servletContext, HttpServletRequest request,
+ HttpServletResponse response, Locale locale, String path)

{ + processor_.buildTemplateContext(context, servletContext, request, + response, locale, path); + }

public void buildTemplateContext(TemplateContext context,
ServletContext servletContext, HttpServletRequest request,

  • HttpServletResponse response, Locale locale, String path)
    + HttpServletResponse response, String path) { + /* processor_.buildTemplateContext(context, servletContext, request, response, locale, path); + */ + buildTemplateContext(context, servletContext, request, + response, Locale.getDefault(), path); }

+ /*
+ public void buildTemplateContext(TemplateContext context,
+ ServletContext servletContext, HttpServletRequest request,
+ HttpServletResponse response, String path)

{ + }

+ */

Generated at Thu Jan 09 15:09:00 JST 2025 using Jira 9.17.5#9170005-sha1:a31f12538a5bc5fbd519064b86500f26fb9312c1.