[akabana-user:181] S2Flexのメモリリークについて
有井 貴志
[E-MAIL ADDRESS DELETED]
2008年 10月 14日 (火) 20:34:48 JST
お世話になります。有井と申します。
S2Flexを用いたModuleをModuleLoaderでロード・アンロードすると
何故かメモリが残ったままになってしまいます。
S2Flexを使用していないModuleではメモリ解放が確認できました。
自分のソースが悪いのかどうなのかも分からず困っております。
お忙しい所、お手数お掛けしてしまい本当に申し訳ございませんが
何が問題なのかご教示頂けませんでしょうか?
環境
・flexSDK Flex 3.1
・s2flex2-components.swc
・s2-flex2-1.1.1-rc1
・s2-framework-2.4.29
・JDK6
・Tomcat5.0.28
以下ソースです
-Main.mxml-----------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:ApplicationControlBar width="100%">
<mx:Button label="load" click="load()"/>
<mx:Button label="unload" click="unload()"/>
</mx:ApplicationControlBar>
<mx:ModuleLoader id="mloader"
width="100%" height="100%"/>
<mx:Script>
<![CDATA[
private function load(): void
{
mloader.url = "S2FlexSample1.swf";
mloader.loadModule();
}
private function unload(): void
{
mloader.unloadModule();
}
]]>
</mx:Script>
</mx:Application>
--------------------------------------------------
-S2FlexSample.mxml--------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Module
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:s2flex="memory.web.s2flex.*"
width="100%" height="100%">
<s2flex:Sample1/>
</mx:Module>
--------------------------------------------------
memory.web.s2flexパッケージ
-Sample1.mxml-------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:seasar="http://www.seasar.org/s2flex2/mxml"
xmlns:s2flex="memory.web.s2flex.*"
width="100%" height="100%">
<seasar:S2Flex2Service id="service"
destination="sampleService" showBusyCursor="true"/>
<s2flex:Sample1Page id="page"/>
<mx:Image source="image/dummy.jpg"/>
</mx:Panel>
--------------------------------------------------
-Sample1Page.as-----------------------------------
package memory.web.s2flex {
import flash.events.Event;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import memory.web.AbstractPage;
[Bindable]
public class Sample1Page extends AbstractPage {
override public function onCreationComplete(event: Event): void {
super.onCreationComplete(event);
getMessage();
}
public function getMessage():void {
remoteCall(service.getMessage(),
getMessageOnSuccess,
getMessageOnFault);
}
public function getMessageOnSuccess(e:ResultEvent
,token:Object=null):void {
Alert.show(e.result as String);
}
public function getMessageOnFault(e:FaultEvent
,token:Object=null):void {
Alert.show(e.message as String);
}
}
}
--------------------------------------------------
Java
-SampleService.java-------------------------------
package memory.web;
public interface SampleService {
public String getMessage();
}
--------------------------------------------------
-SampleServiceImpl.java---------------------------
package memory.web.impl;
import org.seasar.flex2.rpc.remoting.service.annotation.RemotingService;
import memory.web.SampleService;
@RemotingService
public class SampleServiceImpl implements SampleService {
public SampleServiceImpl() {
}
public String getMessage(){
return "Server Message";
}
}
--------------------------------------------------
長々とソースを貼ってしまい申し訳ありません。
何卒、よろしくお願い致します。
akabana-user メーリングリストの案内