tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

UIコンポーネント登録重複エラー

YUI Frameworkでmx:statesを試していたら、こんなエラーが出た。
2つのStateをViewのcurrentStateで切り替えていると、同一Stateでの2回目の"add"イベントが走った時にエラーとなるようです。

Error: UIコンポーネント登録重複エラー
	at org.seasar.akabana.yui.framework.core::UIComponentRepository$/addComponent()[/Users/funakura/Documents/Flex Builder Moxie/yui-frameworks/src/main/actionscript/org/seasar/akabana/yui/framework/core/UIComponentRepository.as:33]
	at org.seasar.akabana.yui.framework.application::BaseYuiApplication/processComponentRegister()[/Users/funakura/Documents/Flex Builder Moxie/yui-frameworks/src/main/actionscript/org/seasar/akabana/yui/framework/application/BaseYuiApplication.as:61]
	at org.seasar.akabana.yui.framework.application::BaseYuiApplication/addHandler()[/Users/funakura/Documents/Flex Builder Moxie/yui-frameworks/src/main/actionscript/org/seasar/akabana/yui/framework/application/BaseYuiApplication.as:53]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
	at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:3295]
	at mx.core::Container/addChildAt()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2210]
	at mx.states::AddChild/apply()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\states\AddChild.as:377]
	at mx.core::UIComponent/applyState()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7199]
	at mx.core::UIComponent/commitCurrentState()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7019]
	at mx.core::UIComponent/setCurrentState()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:6948]
	at mx.core::UIComponent/set currentState()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:4260]
	at logic::LoginViewLogic/auth()[C:\Documents and Settings\Administrator\My Documents\Flex Builder 3\Login\src\logic\LoginViewLogic.as:25]
	at logic::LoginViewLogic/loginButtonClickHandler()[C:\Documents and Settings\Administrator\My Documents\Flex Builder 3\Login\src\logic\LoginViewLogic.as:16]

つまり、本来1回だけしてほしい初期化処理を2回行ってしまう、ということなのだろう。
これはちょっと困った。


それとは別に、スタックトレースにライブラリ作成者の環境らしきものが出力されているけど、これはセキュリティ的に大丈夫なのだろうか。

  • Adobeの中の人はE:\devとあるのでWindowsユーザでたぶんネットワークドライブ
  • YUI Frameworkの中の人は/Usersで始まっているのでMacユーザ

というのがわかってしまうわけで、なんか、こういうのは見えないようにして欲しいのだけど。