Re: BUG in struts-2.5.15
On 3/6/2018 5:34 PM, liemngu...@ups.com.INVALID wrote: > To Struts2 developers, > > I have tested your upcoming struts-2.5.16 on Weblogic server for below bug. I > did not this error anymore. Good Job everyone. > > https://issues.apache.org/jira/browse/WW-4920 > I'm very glad to hear this! Thanks a lot for your support, Liem. Regrads - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: BUG in struts-2.5.15
To Struts2 developers, I have tested your upcoming struts-2.5.16 on Weblogic server for below bug. I did not this error anymore. Good Job everyone. https://issues.apache.org/jira/browse/WW-4920 Thanks, Liem. From: NGUYEN LIEM (APP1LXN) Sent: Wednesday, February 14, 2018 10:48 AM To: 'user@struts.apache.org' <user@struts.apache.org>; 'd...@struts.apache.org' <d...@struts.apache.org>; 'iss...@struts.apache.org' <iss...@struts.apache.org> 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.(URL.java:600) ~[?:1.8.0_101] at java.net.URL.(URL.java:490) ~[?:1.8.0_101] at java.net.URL.(URL.java:439) ~[?:1.8.0_101] at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] at java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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]
Re: BUG in struts-2.5.15
On 2/19/2018 5:35 PM, liemngu...@ups.com.INVALID 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
RE: BUG in struts-2.5.15
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 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 <y...@apache.org> Subject: Re: BUG in struts-2.5.15 Date: 2018/02/16 06:44:07 List: user@struts.apache.org<https://lists.apache.org/list.html?user@struts.apache.org> * On 2/15/2018 7:32 PM, liemngu...@ups.com.INVALID 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 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()); }
Re: BUG in struts-2.5.15
2018-02-16 12:17 GMT+01:00 Yasser Zamani: > 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: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: BUG in struts-2.5.15
On 2/16/2018 10:14 AM, Yasser Zamani wrote: > > On 2/15/2018 7:32 PM, liemngu...@ups.com.INVALID 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: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: BUG in struts-2.5.15
On 2/15/2018 7:32 PM, liemngu...@ups.com.INVALID 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 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: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: BUG in struts-2.5.15
Yasser Zamani, Run your test codes below: private void testStruts2() { try { Iterator 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 <y...@apache.org> Subject: Re: BUG in struts-2.5.15 Date: 2018/02/15 15:12:39 List: user@struts.apache.org<https://lists.apache.org/list.html?user@struts.apache.org> * [https://lists.apache.org/images/quote.png] On 2/14/2018 7:13 PM, liemngu...@ups.com.INVALID 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.(URL.java:600) ~[?:1.8.0_101] > at java.net.URL.(URL.java:490) ~[?:1.8.0_101] > at java.net.URL.(URL.java:439) ~[?:1.8.0_101] > at > java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] > at > java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] > at > com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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 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:!/{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!
RE: BUG in struts-2.5.15
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: 'user@struts.apache.org' <user@struts.apache.org>; 'd...@struts.apache.org' <d...@struts.apache.org>; 'iss...@struts.apache.org' <iss...@struts.apache.org> 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.(URL.java:600) ~[?:1.8.0_101] at java.net.URL.(URL.java:490) ~[?:1.8.0_101] at java.net.URL.(URL.java:439) ~[?:1.8.0_101] at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] at java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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.Filter
Re: BUG in struts-2.5.15
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: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: BUG in struts-2.5.15
mg>below From: liemngu...@ups.com.INVALID <liemngu...@ups.com.INVALID> Sent: Wednesday, February 14, 2018 5:20 PM To: user@struts.apache.org 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 <m...@hotmail.com> Subject: Re: BUG in struts-2.5.15 Date: 2018/02/14 21:09:55 List: user@struts.apache.org<https://lists.apache.org/list.html?user@struts.apache.org> From: liemngu...@ups.com.INVALID <li...@ups.com.INVALID> Sent: Wednesday, February 14, 2018 10:43 AM To: user@struts.apache.org 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?
Re: BUG in struts-2.5.15
On 2/14/2018 7:13 PM, liemngu...@ups.com.INVALID 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.(URL.java:600) ~[?:1.8.0_101] > at java.net.URL.(URL.java:490) ~[?:1.8.0_101] > at java.net.URL.(URL.java:439) ~[?:1.8.0_101] > at > java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] > at > java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] > at > com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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 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:!/{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: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
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. Thanks, Liem. From: Martin Gainty <m...@hotmail.com> Subject: Re: BUG in struts-2.5.15 Date: 2018/02/14 21:09:55 List: user@struts.apache.org<https://lists.apache.org/list.html?user@struts.apache.org> From: liemngu...@ups.com.INVALID <li...@ups.com.INVALID> Sent: Wednesday, February 14, 2018 10:43 AM To: user@struts.apache.org 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?
Re: BUG in struts-2.5.15
From: liemngu...@ups.com.INVALID <liemngu...@ups.com.INVALID> Sent: Wednesday, February 14, 2018 10:43 AM To: user@struts.apache.org 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.(URL.java:600) ~[?:1.8.0_101] at java.net.URL.(URL.java:490) ~[?:1.8.0_101] at java.net.URL.(URL.java:439) ~[?:1.8.0_101] at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] at java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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.
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.(URL.java:600) ~[?:1.8.0_101] at java.net.URL.(URL.java:490) ~[?:1.8.0_101] at java.net.URL.(URL.java:439) ~[?:1.8.0_101] at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] at java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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
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.(URL.java:600) ~[?:1.8.0_101] at java.net.URL.(URL.java:490) ~[?:1.8.0_101] at java.net.URL.(URL.java:439) ~[?:1.8.0_101] at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:175) ~[?:1.8.0_101] at java.net.JarURLConnection.(JarURLConnection.java:158) ~[?:1.8.0_101] at com.opensymphony.xwork2.util.fs.StrutsJarURLConnection.(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