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

キー: JASAK-142
タイプ: バグ バグ
状況: オープン オープン
優先度: 高
担当者: Shoji Kajita
作成者: 松岡孝
投票数: 0
ウォッチャ: 0
操作

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

ワークサイト複製時の不具合

作成日: 10/02/10 15:00   更新日: 10/02/12 18:22
コンポーネント: なし
影響バージョン: 2.7.0
対応予定バージョン: なし


 説明  « 非表示
Sakai 2.7 にて,ワークサイト複製時に,Meleteは一部分のコンテンツしか複製されない.

 すべて   コメント   更新履歴      並び順:
太田 芳博 - 10/02/12 18:22
サイトの複製を実行すると,以下のようなエラーが起こる。
ーーー
2010-02-12 09:11:43,670 WARN TP-Processor49 org.sakaiproject.site.tool.SiteAction - org.sakaiproject.site.tool.SiteAction@862ff0.transferCopyEntities: Error encountered while asking EntityTransfer to transferCopyEntities from: a4ac7cc5-0534-4da7-9939-7585cf24d699 to: 3df183ec-49f7-4c42-8e75-dfbc8d640331
java.lang.NoSuchMethodError: org.sakaiproject.content.api.ContentResource.getContentLength()I
        at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.uploadSectionDependentFile(MeleteImportfromSiteServiceImpl.java:378)
        at org.etudes.component.app.melete.MeleteImportBaseImpl.ReplaceEmbedMediaWithResourceURL(MeleteImportBaseImpl.java:147)
        at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createHTMLFile(MeleteImportfromSiteServiceImpl.java:355)
        at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.processEmbedDatafromHTML(MeleteImportfromSiteServiceImpl.java:225)
        at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createContentResource(MeleteImportfromSiteServiceImpl.java:89)
        at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.buildModules(MeleteImportfromSiteServiceImpl.java:504)
...
ーーー

松岡さん曰く,教材に画像が入っていると,そこでコピー失敗するよう?


Sakai-2.7.x_rev73043 + melete-2.7.2は,
 ContentResource.getContentLengthメソッド
 ContentResource.setContentLengthメソッド
まわりでなんかおかしい気がする.

このContentResourceクラスは,
$TOMCAT_HOME/shared/lib/sakai-kernel-api-1.1.0-beta09.jarにあるようだが...

とりあえずmeleteのソースを変更して対処。
$melete_src/melete-impl/src/java/org/etudes/component/app/melete/MeleteImportfromSiteServiceImpl.java

% diff MeleteImportfromSiteServiceImpl.java MeleteImportfromSiteServiceImpl.java.org
328,329c328
< //if(embedResource.getContentLength() > 0)
< if (true)
---
> if(embedResource.getContentLength() > 0)
379,380c378
< //if(embedResource != null && embedResource.getContentLength() > 0)
< if(embedResource != null)
---
> if(embedResource != null && embedResource.getContentLength() > 0)

2カ所とも,
embedResource.getContentLength() > 0(サイズが0以上だったら...)とあるが
そこでgetContentLengthを呼ばないようにしただけ.

これで(エラーチェックが甘くなっているが)とりあえず動く。