BUG in struts-2.5.15

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

BUG in struts-2.5.15

liemnguyen
Hi all,

Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.

Thanks,
Liem.
--------------------------------------------

2018-02-14 10:28:37.194 WARN  - Could not create JarEntryRevision for [zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml]!
java.net.MalformedURLException: unknown protocol: c
                at java.net.URL.<init>(URL.java:600) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:490) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:439) ~[?:1.8.0_101]
                at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101]
                at java.net.JarURLConnection.<init>(JarURLConnection.java:158) ~[?:1.8.0_101]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.<init>(StrutsJarURLConnection.java:44) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.openConnection(StrutsJarURLConnection.java:99) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:42) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.monitorFile(DefaultFileManager.java:94) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.loadFile(DefaultFileManager.java:73) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:1054) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:198) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:165) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:166) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61) [struts2-core.jar:2.5.15]
                at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.initFilter(FilterManager.java:130) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.loadFilter(FilterManager.java:92) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.preloadFilters(FilterManager.java:72) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:237) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:232) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:82) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:753) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:263) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:67) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:265) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:481) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:53) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:202) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:52) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:592) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.parallel.BucketInvoker.invoke(BucketInvoker.java:138) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.transitionAppsParallel(ConfiguredDeployments.java:600) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:259) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:155) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:221) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:130) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:76) [com.bea.core.weblogic.lifecycle.jar:12.2.1.0]
                at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
                at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
                at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1262) [org.glassfish.hk2.hk2-utils.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:332) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:643) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) [com.oracle.weblogic.work.jar:12.2.1.0]
                at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Martin Gainty


________________________________
From: [hidden email] <[hidden email]>
Sent: Wednesday, February 14, 2018 10:43 AM
To: [hidden email]
Subject: BUG in struts-2.5.15

Hi all,

Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.

MG>asking the obvious ..do you have:

C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

MG>located on your WINDOWS-OS Weblogic server?

Thanks,
Liem.
--------------------------------------------

2018-02-14 10:28:37.194 WARN  - Could not create JarEntryRevision for [zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml]!
java.net.MalformedURLException: unknown protocol: c
                at java.net.URL.<init>(URL.java:600) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:490) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:439) ~[?:1.8.0_101]
                at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101]
                at java.net.JarURLConnection.<init>(JarURLConnection.java:158) ~[?:1.8.0_101]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.<init>(StrutsJarURLConnection.java:44) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.openConnection(StrutsJarURLConnection.java:99) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:42) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.monitorFile(DefaultFileManager.java:94) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.loadFile(DefaultFileManager.java:73) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:1054) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:198) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:165) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:166) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61) [struts2-core.jar:2.5.15]
                at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.initFilter(FilterManager.java:130) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.loadFilter(FilterManager.java:92) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.preloadFilters(FilterManager.java:72) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:237) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:232) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:82) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:753) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:263) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:67) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:265) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:481) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:53) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:202) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:52) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:592) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.parallel.BucketInvoker.invoke(BucketInvoker.java:138) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.transitionAppsParallel(ConfiguredDeployments.java:600) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:259) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:155) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:221) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:130) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:76) [com.bea.core.weblogic.lifecycle.jar:12.2.1.0]
                at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
                at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
                at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1262) [org.glassfish.hk2.hk2-utils.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:332) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:643) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) [com.oracle.weblogic.work.jar:12.2.1.0]
                at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

liemnguyen
In reply to this post by liemnguyen
Martin Gainty,

I found "C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar". I believe struts-default.xml is within struts2-core.jar (renamed from struts2-core-2.5.15.jar).

I believe this bug is similar to https://issues.apache.org/jira/browse/WW-4901 in struts-2.5.14.1 and struts-2.5.14.

When I tested upgrading to struts-2.5.14.1 (or struts-2.5.14), I see similar error described in WW-4901.

Struts-2.5.13 did not have this bug.

I thought this bug is fixed in struts-2.5.15. Somehow, I still see it in struts-2.5.15 when deploying to Weblogic server.

Thanks,
Liem.


From: Martin Gainty <[hidden email]>
Subject: Re: BUG in struts-2.5.15
Date: 2018/02/14 21:09:55
List: [hidden email]<https://lists.apache.org/list.html?user@...>






________________________________

From: [hidden email] <[hidden email]>

Sent: Wednesday, February 14, 2018 10:43 AM

To: [hidden email]

Subject: BUG in struts-2.5.15



Hi all,



Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.



MG>asking the obvious ..do you have:



C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml



MG>located on your WINDOWS-OS Weblogic server?


Reply | Threaded
Open this post in threaded view
|

RE: BUG in struts-2.5.15

liemnguyen
In reply to this post by liemnguyen
To Struts developers:

Below is URL connection object that is passed to StrutsJarURLConnection.openConnection(URL url):
url-type=java.net.URL
url.toString=zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
url.getProtocol=zip
url.getPath=C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
url.getPort=-1
url.getQuery=null
url.getFile=C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
url.getHost=
url.getRef=null
url.getAuthority=
url.getDefaultPort=-1

Thanks,
Liem.

From: NGUYEN LIEM (APP1LXN)
Sent: Wednesday, February 14, 2018 10:48 AM
To: '[hidden email]' <[hidden email]>; '[hidden email]' <[hidden email]>; '[hidden email]' <[hidden email]>
Subject: BUG in struts-2.5.15

Hi all,

Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.


Thanks,
Liem.
--------------------------------------------

2018-02-14 10:28:37.194 WARN  - Could not create JarEntryRevision for [zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml]!
java.net.MalformedURLException: unknown protocol: c
                at java.net.URL.<init>(URL.java:600) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:490) ~[?:1.8.0_101]
                at java.net.URL.<init>(URL.java:439) ~[?:1.8.0_101]
                at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101]
                at java.net.JarURLConnection.<init>(JarURLConnection.java:158) ~[?:1.8.0_101]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.<init>(StrutsJarURLConnection.java:44) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.openConnection(StrutsJarURLConnection.java:99) ~[struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:42) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.monitorFile(DefaultFileManager.java:94) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.util.fs.DefaultFileManager.loadFile(DefaultFileManager.java:73) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:1054) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:198) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:165) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:166) [struts2-core.jar:2.5.15]
                at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73) [struts2-core.jar:2.5.15]
                at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61) [struts2-core.jar:2.5.15]
                at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196) [com.oracle.weblogic.security.subject.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.initFilter(FilterManager.java:130) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.loadFilter(FilterManager.java:92) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.FilterManager.preloadFilters(FilterManager.java:72) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875) [com.oracle.weblogic.servlet.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:237) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:232) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:82) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:753) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:263) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:67) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) [com.oracle.weblogic.application.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:265) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:481) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:53) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:202) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:52) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:592) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.parallel.BucketInvoker.invoke(BucketInvoker.java:138) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.transitionAppsParallel(ConfiguredDeployments.java:600) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:259) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:155) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:221) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:130) [com.oracle.weblogic.deploy.jar:12.2.1.0]
                at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:76) [com.bea.core.weblogic.lifecycle.jar:12.2.1.0]
                at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
                at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
                at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1262) [org.glassfish.hk2.hk2-utils.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:332) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88) [org.glassfish.hk2.hk2-locator.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144) [org.glassfish.hk2.hk2-runlevel.jar:?]
                at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:643) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) [com.bea.core.utils.full.jar:12.2.1.0]
                at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) [com.oracle.weblogic.work.jar:12.2.1.0]
                at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]
                at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) [com.bea.core.weblogic.workmanager.jar:12.2.1.0]

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Yasser Zamani-2
In reply to this post by liemnguyen


On 2/14/2018 7:13 PM, [hidden email] wrote:

> Hi all,
>
> Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.
>
> Thanks,
> Liem.
> --------------------------------------------
>
> 2018-02-14 10:28:37.194 WARN  - Could not create JarEntryRevision for [zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml]!
> java.net.MalformedURLException: unknown protocol: c
>                 at java.net.URL.<init>(URL.java:600) ~[?:1.8.0_101]
>                 at java.net.URL.<init>(URL.java:490) ~[?:1.8.0_101]
>                 at java.net.URL.<init>(URL.java:439) ~[?:1.8.0_101]
>                 at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101]
>                 at java.net.JarURLConnection.<init>(JarURLConnection.java:158) ~[?:1.8.0_101]
>                 at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.<init>(StrutsJarURLConnection.java:44) ~[struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.openConnection(StrutsJarURLConnection.java:99) ~[struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:42) [struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.DefaultFileManager.monitorFile(DefaultFileManager.java:94) [struts2-core.jar:2.5.15]


Hi Liem,

Thank you so much for your report and nice catch!

It seems weblogic is commerical and so I cannot try this myself then may
I ask you to run following code in your action then examine output and
reply me every line starting with "COPY ME:"?

import com.opensymphony.xwork2.util.ClassLoaderUtil;

    public String execute() throws Exception {
        Iterator<URL> strutsDefaultXmls =
ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);
        while (strutsDefaultXmls.hasNext()) {
            URLConnection conn = strutsDefaultXmls.next().openConnection();
            System.out.println("COPY ME: " + conn.toString());
            conn.getInputStream().close();
        }

These two days I tried to make StrutsJarURLConnection even more
decoupled from container (e.g. weblogic) but could not pass tests so far :(

The issue is, JDK's JarURLConnection expects url of jars in
jar:<url>!/{entry} format but weblogic reports them as zip:C:/... then
JDK is going to convert C:/... to url then sees it does not know any
protocol named c.

So I'm interested to know if "conn.toString" above contains "jar" or not
i.e. does weblogic report them as jars or not.

I also would like to say it seems it's just a warning and does not block
your app functionality; Only "reloading configs runtime when jar
changes" won't work as expected.

Thanks in advance!


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Martin Gainty
In reply to this post by liemnguyen
mg>below

________________________________
From: [hidden email] <[hidden email]>
Sent: Wednesday, February 14, 2018 5:20 PM
To: [hidden email]
Subject: Re: BUG in struts-2.5.15

Martin Gainty,

I found "C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar". I believe struts-default.xml is within struts2-core.jar (renamed from struts2-core-2.5.15.jar).

I believe this bug is similar to https://issues.apache.org/jira/browse/WW-4901 in struts-2.5.14.1 and struts-2.5.14.

When I tested upgrading to struts-2.5.14.1 (or struts-2.5.14), I see similar error described in WW-4901.

Struts-2.5.13 did not have this bug.

I thought this bug is fixed in struts-2.5.15. Somehow, I still see it in struts-2.5.15 when deploying to Weblogic server.

MG>yes if you see ClassCastException your bug is same as WW-4901
MG>its Lukasz call on whether or not to revert 2.5.15 to working 2.5.13 codebase..i would ping him for next steps

Thanks,
Liem.


From: Martin Gainty <[hidden email]>
Subject: Re: BUG in struts-2.5.15
Date: 2018/02/14 21:09:55
List: [hidden email]<https://lists.apache.org/list.html?user@...>






________________________________

From: [hidden email] <[hidden email]>

Sent: Wednesday, February 14, 2018 10:43 AM

To: [hidden email]

Subject: BUG in struts-2.5.15



Hi all,



Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.



MG>asking the obvious ..do you have:



C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml



MG>located on your WINDOWS-OS Weblogic server?


Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Yasser Zamani-2


On 2/15/2018 7:15 PM, Martin Gainty wrote:
> I found "C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar". I believe struts-default.xml is within struts2-core.jar (renamed from struts2-core-2.5.15.jar).
>
> I believe this bug is similar to https://issues.apache.org/jira/browse/WW-4901 in struts-2.5.14.1 and struts-2.5.14.
>

No I do not think it's same, as IBM WebSphere (that issue container) and
Oracle WebLogic (your issue container) are slightly different. That was
a Class Cast issue, your one is Unknown Protocol.

However, both issues are because different containers (e.g. tomcat,
weblogic, websphere) report jar resources as different url formats and
connections :(


> When I tested upgrading to struts-2.5.14.1 (or struts-2.5.14), I see similar error described in WW-4901.
>
> Struts-2.5.13 did not have this bug.
>

Struts 2.5.13 does not throw this warning but also it's "runtime config
reloading when jars change" does not work. In next versions (2.5.14,
2.5.15) this starts working :) but seems we have to make it completely
independent from underlying container :(

> I thought this bug is fixed in struts-2.5.15. Somehow, I still see it in struts-2.5.15 when deploying to Weblogic server.
>
> MG>yes if you see ClassCastException your bug is same as WW-4901
> MG>its Lukasz call on whether or not to revert 2.5.15 to working 2.5.13 codebase..i would ping him for next steps

Please consider it's just a warning it seems. It does not break your app
functionalty; Only "runtime config reloading when jars change" feature
does not work as expected for you. You can consider your current status
equal to Struts 2.5.13 i.e. Struts 2.5.13 also has this issue :)

Regards.


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: BUG in struts-2.5.15

liemnguyen
In reply to this post by liemnguyen

Yasser Zamani,

 

Run your test codes below:

private void testStruts2()

{

  try {

    Iterator<URL> strutsDefaultXmls = ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);

    while (strutsDefaultXmls.hasNext())

    {

      URLConnection conn = strutsDefaultXmls.next().openConnection();

      System.out.println("COPY ME: " + conn.toString()); conn.getInputStream().close();

    }

  } catch (Exception e) {

    e.printStackTrace();

  }

}

 

Here is the output:

COPY ME: weblogic.utils.zip.ZipURLConnection:zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

 

 

--------

Also, below is URL connection object that is passed to StrutsJarURLConnection.openConnection(URL url):

url-type=java.net.URL

url.toString=zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

url.getProtocol=zip

url.getPath=C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

url.getPort=-1

url.getQuery=null

url.getFile=C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

url.getHost=

url.getRef=null

url.getAuthority=

url.getDefaultPort=-1

 

Thanks,

Liem.

 

 

  • From: Yasser Zamani <[hidden email]>
    Subject: Re: BUG in struts-2.5.15
    Date: 2018/02/15 15:12:39
    List: user@...

·          
 
On 2/14/2018 7:13 PM, [hidden email] wrote:
> Hi all,
> 
> Testing your upcoming struts-2.5.15, when starting Weblogic server (Weblogic server version 12.2.1.2.0, JDK v 1.8.0_101), we see exception below.
> 
> Thanks,
> Liem.
> --------------------------------------------
> 
> 2018-02-14 10:28:37.194 WARN  - Could not create JarEntryRevision for [zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml]!
> java.net.MalformedURLException: unknown protocol: c
>                 at java.net.URL.<init>(URL.java:600) ~[?:1.8.0_101]
>                 at java.net.URL.<init>(URL.java:490) ~[?:1.8.0_101]
>                 at java.net.URL.<init>(URL.java:439) ~[?:1.8.0_101]
>                 at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101]
>                 at java.net.JarURLConnection.<init>(JarURLConnection.java:158) ~[?:1.8.0_101]
>                 at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.<init>(StrutsJarURLConnection.java:44) ~[struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.openConnection(StrutsJarURLConnection.java:99) ~[struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:42) [struts2-core.jar:2.5.15]
>                 at com.opensymphony.xwork2.util.fs.DefaultFileManager.monitorFile(DefaultFileManager.java:94) [struts2-core.jar:2.5.15]
 
 
Hi Liem,
 
Thank you so much for your report and nice catch!
 
It seems weblogic is commerical and so I cannot try this myself then may
I ask you to run following code in your action then examine output and
reply me every line starting with "COPY ME:"?
 
import com.opensymphony.xwork2.util.ClassLoaderUtil;
 
    public String execute() throws Exception {
        Iterator<URL> strutsDefaultXmls =
ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);
        while (strutsDefaultXmls.hasNext()) {
            URLConnection conn = strutsDefaultXmls.next().openConnection();
            System.out.println("COPY ME: " + conn.toString());
            conn.getInputStream().close();
        }
 
These two days I tried to make StrutsJarURLConnection even more
decoupled from container (e.g. weblogic) but could not pass tests so far :(
 
The issue is, JDK's JarURLConnection expects url of jars in
jar:<url>!/{entry} format but weblogic reports them as zip:C:/... then
JDK is going to convert C:/... to url then sees it does not know any
protocol named c.
 
So I'm interested to know if "conn.toString" above contains "jar" or not
i.e. does weblogic report them as jars or not.
 
I also would like to say it seems it's just a warning and does not block
your app functionality; Only "reloading configs runtime when jar
changes" won't work as expected.
 
Thanks in advance!
 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Yasser Zamani-2


On 2/15/2018 7:32 PM, [hidden email] wrote:
> Here is the output:
>
> COPY ME:
> weblogic.utils.zip.ZipURLConnection:zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
>

Thanks! I have a candidate solution (correcting url to "file:/" when
protocol is empty; like Spring Framework [1]) but my JDK here then says
"Unknown protocol: zip". Could you please also run following block to
see if your context there already knows zip protocol?

import com.opensymphony.xwork2.util.ClassLoaderUtil;
import com.opensymphony.xwork2.util.fs.JarEntryRevision;
import com.opensymphony.xwork2.util.fs.Revision;
        Iterator<URL> strutsDefaultXmls =

    public String execute() throws Exception {
ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);
        while (strutsDefaultXmls.hasNext()) {
            URL url = strutsDefaultXmls.next();
            URL url2 = new URL(url.getProtocol(), url.getHost(),
url.getPort(), "file:/" + url.getFile());
            Revision r = JarEntryRevision.build(url2);
            System.out.println("COPY ME: " + r.needsReloading());
        }


[1]
https://github.com/spring-projects/spring-framework/blob/aa4bcedad37a9a084e96298f087fec4889c59cdc/spring-core/src/main/java/org/springframework/util/ResourceUtils.java#L316

>
> Also, below is URL connection object that is passed to
> StrutsJarURLConnection.openConnection(URL url):
>

Yes I saw ... Thanks!

Sincerely,
Yasser.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Yasser Zamani-2
In reply to this post by liemnguyen


On 2/16/2018 10:14 AM, Yasser Zamani wrote:

>
> On 2/15/2018 7:32 PM, [hidden email] wrote:
>> Here is the output:
>>
>> COPY ME:
>> weblogic.utils.zip.ZipURLConnection:zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
>>
> Thanks! I have a candidate solution (correcting url to "file:/" when
> protocol is empty; like Spring Framework [1]) but my JDK here then says
> "Unknown protocol: zip". Could you please also run following block to
> see if your context there already knows zip protocol?

Not needed :) I proposed a solution at [1]. It's test at [2] shows it
should fix this issue.

Please follow it's resolution at WW-4920 [3].

I hope Łukasz will be able to deliver this fix with 2.5.15.

Thanks a lot again for your spent time on this issue and report!

Sincerely,
Yasser.

[1] https://github.com/apache/struts/pull/209
[2]
https://github.com/yasserzamani/struts/blob/4718dccd1c09570efd66dae975f0a8d37e7c4e07/core/src/test/java/com/opensymphony/xwork2/util/fs/JarEntryRevisionTest.java#L93
[3] https://issues.apache.org/jira/browse/WW-4920

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Lukasz Lenart
2018-02-16 12:17 GMT+01:00 Yasser Zamani <[hidden email]>:
> I hope Łukasz will be able to deliver this fix with 2.5.15.

The approach we use is as follow:
- release a test build and give users time to spend some time on
testing it (2.5.15)
- if no objections promote the test build into a GA release (vote)
- if some bugs were discovered (like in 2.5.15), drop the test build
and prepare w new one (2.5.16) and start over

https://struts.apache.org/kickstart.html#looking-at-the-releases-page-some-versions-seem-to-be-missing-what-happened-to-them


Regards
--
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: BUG in struts-2.5.15

liemnguyen
In reply to this post by liemnguyen
Yasser Zamani,

Run your test codes below:
import com.opensymphony.xwork2.util.ClassLoaderUtil;
import com.opensymphony.xwork2.util.fs.JarEntryRevision;
import com.opensymphony.xwork2.util.fs.Revision;

private void testStruts2_2()
{
  try {
    Iterator<URL> strutsDefaultXmls = ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);
    while (strutsDefaultXmls.hasNext())
    {

      URL url = strutsDefaultXmls.next();
      URL url2 = new URL(url.getProtocol(), url.getHost(), url.getPort(), "file:/" + url.getFile());
      System.out.println("COPY ME, url2.toString=" + url2.toString());
      Revision r = JarEntryRevision.build(url2);
      System.out.println("COPY ME: " + r.needsReloading());

    }

  } catch (Exception e) {
    e.printStackTrace();
  }

}

Here is the output:
COPY ME, url2.toString=zip:file:/C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
COPY ME: false




  *   From: Yasser Zamani <[hidden email]>
Subject: Re: BUG in struts-2.5.15
Date: 2018/02/16 06:44:07
List: [hidden email]<https://lists.apache.org/list.html?user@...>


*





On 2/15/2018 7:32 PM, [hidden email] wrote:

> Here is the output:

>

> COPY ME:

> weblogic.utils.zip.ZipURLConnection:zip:C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml

>



Thanks! I have a candidate solution (correcting url to "file:/" when

protocol is empty; like Spring Framework [1]) but my JDK here then says

"Unknown protocol: zip". Could you please also run following block to

see if your context there already knows zip protocol?



import com.opensymphony.xwork2.util.ClassLoaderUtil;

import com.opensymphony.xwork2.util.fs.JarEntryRevision;

import com.opensymphony.xwork2.util.fs.Revision;

        Iterator<URL> strutsDefaultXmls =



    public String execute() throws Exception {

ClassLoaderUtil.getResources("struts-default.xml", this.getClass(), true);

        while (strutsDefaultXmls.hasNext()) {

            URL url = strutsDefaultXmls.next();

            URL url2 = new URL(url.getProtocol(), url.getHost(),

url.getPort(), "file:/" + url.getFile());

            Revision r = JarEntryRevision.build(url2);

            System.out.println("COPY ME: " + r.needsReloading());

        }

Reply | Threaded
Open this post in threaded view
|

Re: BUG in struts-2.5.15

Yasser Zamani-2


On 2/19/2018 5:35 PM, [hidden email] wrote:
> Yasser Zamani,
> Here is the output:
> COPY ME, url2.toString=zip:file:/C:/Oracle/Middleware/Oracle_Home12.2.1.0.0/user_projects/domains/iwa_local_domain/servers/AdminServer/tmp/_WL_user/IWA/zfd81u/war/WEB-INF/lib/struts2-core.jar!/struts-default.xml
> COPY ME: false

Great! then your context there knows also zip protocol. My JDK throws
unknown protocol zip! Anyway, it's not a problem :)

Łukasz says it's OK to merge my proposed solution at [1]. It contains a
test at [2] which shows it should fix this issue.

Please follow it's resolution at WW-4920 [3].

ASAP, Łukasz will deliver this fix with another build, 2.5.16. Please
stay and test it also if you had any time to feedback.

Thanks a lot again for your spent time on this issue and report!

Sincerely,
Yasser.

[1] https://github.com/apache/struts/pull/209
[2]
https://github.com/yasserzamani/struts/blob/4718dccd1c09570efd66dae975f0a8d37e7c4e07/core/src/test/java/com/opensymphony/xwork2/util/fs/JarEntryRevisionTest.java#L93
[3] https://issues.apache.org/jira/browse/WW-4920

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]