履歴 | ログイン     現在のページを印刷可能フォーマットで表示します  
課題の詳細 (XML | Word | 印刷用画面)

キー: JASAK-122
タイプ: バグ バグ
状況: 対応中 対応中
優先度: 高
担当者: Shoji Kajita
作成者: 古井慎也
投票数: 0
ウォッチャ: 0
操作

ログインすると、さらに他の操作を行えます。
Ja Sakai

'Samigo'のテスト配信日時設定ができない.

作成日: 09/04/24 10:49   更新日: 11/09/10 15:31
コンポーネント: Samigo: Global
影響バージョン: 2.6.0-beta03
対応予定バージョン: なし

環境: mac(Safari),windows(IE,Firefox)


 説明  « 非表示
'Samigo'でテストを作成し、テストの配信日時を設定後に設定を保存.設定保存後,再度配信日時設定を見ると,設定したはずの日時が消えている.その状態で出版しても,配信日時設定は反映されない.

 すべて   コメント   更新履歴      並び順:
Shoji Kajita - 09/11/25 16:23
Samigo のバグです.

以下のパッチを当てる必要があります.

*** sam/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/AssessmentSettingsBean.java.orig Wed May 13 17:03:02 2009
--- sam/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/AssessmentSettingsBean.java Mon Aug 17 07:54:03 2009
***************
*** 33,38 ****
--- 33,39 ----
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
+ import java.util.Locale;
  import java.util.Set;
  import java.util.TreeMap;
  
***************
*** 1482,1488 ****
    public void setDisplayFormat(String displayDateFormat)
    {
          this.displayDateFormat = displayDateFormat;
! this.displayFormat = new SimpleDateFormat(displayDateFormat);
    }
    
    public boolean getIsValidStartDate()
--- 1483,1492 ----
    public void setDisplayFormat(String displayDateFormat)
    {
          this.displayDateFormat = displayDateFormat;
! // this.displayFormat = new SimpleDateFormat(displayDateFormat);
! // For the time being, the locale is fixed to "en" by Shoji Kajita 2009/08/16
! Locale defaultLocale = new Locale("en");
! this.displayFormat = new SimpleDateFormat(displayDateFormat, defaultLocale);
    }
    
    public boolean getIsValidStartDate()

太田 芳博 - 09/11/26 17:01
梶田先生のパッチだけでは動かなかったので,調べて修正対応しました.

日本語OS(Solaris10)で動かすと,引数でやってくるdisplayDateFormatが
yyyy年MM月dd日(a)hh時mm分ss秒 になってしまっているようで,
その後のparseに失敗するようでした。

ので...静的にフォーマットを書いてしまいました。
少なくともこの対応で日付が保持され,Oracleに正しく登録されるのを確認できました。

# displayDateFormatがメソッドの引数である意味はなくなってしまっています。
  本来はdisplayDateFormatに値セットする箇所を探してそこで対応すべきかとは思います。

(修正箇所)
sam/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/AssessmentSettingsBean.java:


  public void setDisplayFormat(String displayDateFormat)
  {
        // additiional fix by Y.Ohta&Y.Tajima. 2009/11/26
        displayDateFormat = "MM/dd/yyyy hh:mm:ss a";
        //System.out.printf("displayDateFormat: %s\n", displayDateFormat);

          this.displayDateFormat = displayDateFormat;
      //this.displayFormat = new SimpleDateFormat(displayDateFormat);
      // For the time being, the locale is fixed to "en" by Shoji Kajita 2009/08/16
        Locale defaultLocale = new Locale("en");
        this.displayFormat = new SimpleDateFormat(displayDateFormat, defaultLocale);

  }

太田 芳博 - 10/05/17 11:32
一度出版(publish)したテストに関して配信日時を再設定しようとすると,同じ問題が起こることを確認。

PublishedAssessmentSettingsBean.java の setDisplayFormat メソッドも同じように修正が必要。

修正後のメソッド:

        public void setDisplayFormat(String displayDateFormat) {

                displayDateFormat = "MM/dd/yyyy hh:mm:ss a";

                this.displayDateFormat = displayDateFormat;
                //this.displayFormat = new SimpleDateFormat(displayDateFormat);

                Locale defaultLocale = new Locale("en");
                this.displayFormat = new SimpleDateFormat(displayDateFormat, defaultLocale);

        }

# また, java.util.Localeも同様にimportしておくこと.



太田 芳博 - 10/07/30 09:03
ちなみに

 svn co https://source.sakaiproject.org/svn/sam/tags/samigo-2.7.0/

でとってきた2.7.0のsamigoでも直ってません。

Shoji Kajita - 11/07/28 20:35
The delivery date of test in Samigo is not saved in database so that the date must be re-set again.

山田 勇樹 - 11/09/10 15:31
この問題は、既に本家JIRAへバグ報告が行われており、現時点では未解決です。
https://jira.sakaiproject.org/browse/SAM-1046