[Seasar-user:21306] Re: WebLogic FastSwap時にArrayIndexOutOfBoundsException

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2012年 3月 29日 (木) 23:20:01 JST


小林 (koichik) です.

同じクラス (Class のインスタンス) に対して Class#getInterfaces() と
Class#getGenericInterfaces() を続けて呼び出しているのに,
それらが異なる長さの配列を返す (というか,おそらくは
getGenericInterfaces() が空の配列を返す) というのは 
WebLogic 側のバグではないでしょうか?

パッチが出ていないか探す,あるいはサポートへ連絡するなど
してみては?


On Tue, 27 Mar 2012 17:32:45 +0900, nakayama c <[E-MAIL ADDRESS DELETED]> wrote:

> 
>  
> お世話になります。中山と申します。
> 大変申し訳ありません。
> 
> 改行が削除され投稿されておりましたので、再度送信させていただきます。
> お目汚し、失礼いたしました。
> 以上、よろしくお願いいたします。
>  
> --------------------------------------------------------------------
> 始めまして。中山と申します。
>  
> 現在、ユーザの環境/アーキテクチャの制約上、Seasar2のHotDeployが使えない為、
> weblogicのFastSwapを利用しようとしています。
> weblogicでFastSwapを有効化するとクラスファイルが変更されるようで、GenericUtil#getTypeVariableMap()内で
> interfaces.lengthとinterfaceTypes.lengthに差異が発生し、ArrayIndexOutOfBoundsExceptionが送出されます。
> 
> 回避方法があれば、ご教示いただけますでしょうか?
>  
>  
> WebLogic Serverバージョン: 10.3.5.0
> Seasar2 2.4.45
>  
>  
> 以下、stacktraceになります。
> ####<2012/03/16 20時37分17秒 JST> <Error> <Deployer> <SMTON100302> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <5d46168ed78bd732:-1f24aaff:1361b4b84cf:-8000-0000000000000002> <1331897837208> <BEA-149231> <アプリケーション'Sample_WLS11gFW_EAR3'に対してアクティブ化状態をtrueに設定できませんでした。
> java.lang.ArrayIndexOutOfBoundsException: 0  at org.seasar.framework.util.tiger.GenericUtil.getTypeVariableMap(GenericUtil.java:276)
>  at org.seasar.framework.beans.factory.ParameterizedClassDescFactoryProvider.getTypeVariables(ParameterizedClassDescFactoryProvider.java:40)
>  at org.seasar.framework.beans.factory.ParameterizedClassDescFactory.getTypeVariables(ParameterizedClassDescFactory.java:60)
>  at org.seasar.framework.beans.impl.BeanDescImpl.<init>(BeanDescImpl.java:111)
>  at org.seasar.framework.beans.factory.BeanDescFactory.getBeanDesc(BeanDescFactory.java:60)
>  at org.seasar.framework.container.factory.ConstantAnnotationHandler.createComponentDef(ConstantAnnotationHandler.java:151)
>  at org.seasar.framework.container.factory.TigerAnnotationHandler.createComponentDef(TigerAnnotationHandler.java:408)
>  at org.seasar.framework.container.creator.ComponentCreatorImpl.createComponentDef(ComponentCreatorImpl.java:262)
>  at org.seasar.framework.container.cooldeploy.CoolComponentAutoRegister.createComponentDef(CoolComponentAutoRegister.java:184)
>  at org.seasar.framework.container.cooldeploy.CoolComponentAutoRegister.processClass(CoolComponentAutoRegister.java:163)
>  at org.seasar.framework.util.ClassTraversal.traverseFileSystem(ClassTraversal.java:213)
>  at org.seasar.framework.util.ClassTraversal.traverseFileSystem(ClassTraversal.java:207)
>  at org.seasar.framework.util.ClassTraversal.traverseFileSystem(ClassTraversal.java:207)
>  at org.seasar.framework.util.ClassTraversal.forEach(ClassTraversal.java:79)
>  at org.seasar.framework.util.ResourcesUtil$FileSystemResources.forEach(ResourcesUtil.java:374)
>  at org.seasar.framework.container.cooldeploy.CoolComponentAutoRegister.registerAll(CoolComponentAutoRegister.java:129)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>  at java.lang.reflect.Method.invoke(Method.java:597)
>  at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:96)
>  at org.seasar.framework.container.assembler.AbstractMethodAssembler.invoke(AbstractMethodAssembler.java:94)
>  at org.seasar.framework.container.assembler.DefaultInitMethodAssembler.assemble(DefaultInitMethodAssembler.java:49)
>  at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:70)
>  at org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:48)
>  at org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:77)
>  at org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:237)
>  at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:563)
>  at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:560)
>  at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:168)
>  at SampleApplicationLifecycleListener$beaVersion0_1.postStart(SampleApplicationLifecycleListener.java:18)
>  at SampleApplicationLifecycleListener.postStart(SampleApplicationLifecycleListener.java)
>  at weblogic.application.internal.flow.BaseLifecycleFlow$PostStartAction.run(BaseLifecycleFlow.java:297)
>  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
>  at weblogic.application.internal.flow.BaseLifecycleFlow$LifecycleListenerAction.invoke(BaseLifecycleFlow.java:199)
>  at weblogic.application.internal.flow.BaseLifecycleFlow.postStart(BaseLifecycleFlow.java:71)
>  at weblogic.application.internal.flow.TailLifecycleFlow.activate(TailLifecycleFlow.java:34)
>  at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:637)
>  at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:54)
>  at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205)
>  at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
>  at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
>  at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
>  at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
>  at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
>  at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
>  at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
>  at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
>  at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
>  at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
>  at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
>  at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
>  at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
>  at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
>  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
>  at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
>   		 	   		  
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user


-- 
{
  name: "Koichi Kobayashi",
  mail: "[E-MAIL ADDRESS DELETED]",
  blog: "http://d.hatena.ne.jp/koichik/",
  twitter: "@koichik"
}



Seasar-user メーリングリストの案内