メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

大きなファイルサイズのアップロード時にRequest exceeded size limit! FileUploadBase$SizeLimitExceededException the request was rejected because its size exceeds the configured maximum

タイトル長くてスミマセン。

環境

Wildfly 10.1.0.Final
Struts 2.3.34

最初に解決方法を書いておきます

Wildfly設定 (standalone.xml)

<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" />

<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" max-post-size="1073741824" />

struts.xml

<struts>
<!-- 略 -->
<constant name="struts.multipart.maxSize" value="10485760" /><!-- 10MB -->
<constant name="struts.multipart.parser" value="jakarta-stream" />
<!-- 略 -->
</struts>

※ InterceptorStackにdefaultStackが入っているか、もしくはfileUploadが含まれていること。

messages.properties

struts.message.upload.error.FileSizeLimitExceededException=ファイルサイズが大きすぎます。

説明

Wildflyは大きなサイズのリクエストを受けるとコネクションをターミネートするようになっています。この場合
java.io.IOException: UT000020: Connection terminated as request was larger than 1073741824
がスタックに出力されると思います。(1073741824は設定されている最大サイズ)
Chromeでは ERR_CONNECTION_RESET が表示されているのが確認できます。
まずこの設定されているサイズを大きくするのが、Wildflyの設定(standalone.xml)です。

一方Struts2では、サイズのチェックを行い、サイズオーバーであればエラーとするような設定をstruts.xmlに行います。
struts.multipart.maxSize にサイズを設定します。
10MBであれば、10 * 1024 * 1024 = 10485760 [byte]といった計算をして設定します。

この場合に発生するExceptionは、InterceptorStackのExceptionではハンドリングできないので、エラーメッセージはmessage.propertiesに、struts.message.upload.error.FileSizeLimitExceededException をキーにエラーメッセージを設定します。

スタック

検索用も兼ねて。こんなスタックが出ます。
リクエストサイズが大きすぎる場合にWildflyから出力されるスタック。

HH:mm:SS,SSS ERROR [stderr] (default task-10) java.io.IOException: UT000020: Connection terminated as request was larger than 1073741824
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize(FixedLengthStreamSourceConduit.java:168)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.conduits.FixedLengthStreamSourceConduit.read(FixedLengthStreamSourceConduit.java:229)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.channels.DetachableStreamSourceChannel.read(DetachableStreamSourceChannel.java:209)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.HttpServerExchange$ReadDispatchChannel.read(HttpServerExchange.java:2265)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.xnio.channels.Channels.readBlocking(Channels.java:294)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:168)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:144)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:999)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:903)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at java.io.InputStream.read(InputStream.java:101)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:100)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:617)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:634)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1023)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:1003)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(ServletFileUpload.java:154)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest.processUpload(JakartaStreamMultiPartRequest.java:287)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest.parse(JakartaStreamMultiPartRequest.java:248)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:84)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:849)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:138)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
HH:mm:SS,SSS ERROR [stderr] (default task-10) 	at java.lang.Thread.run(Thread.java:748)
HH:mm:SS,SSS ERROR [stderr] (default task-11) java.io.IOException: UT000020: Connection terminated as request was larger than 1073741824
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize(FixedLengthStreamSourceConduit.java:168)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.conduits.FixedLengthStreamSourceConduit.read(FixedLengthStreamSourceConduit.java:229)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.channels.DetachableStreamSourceChannel.read(DetachableStreamSourceChannel.java:209)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.HttpServerExchange$ReadDispatchChannel.read(HttpServerExchange.java:2265)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.xnio.channels.Channels.readBlocking(Channels.java:294)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:168)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:144)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:999)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:903)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at java.io.InputStream.read(InputStream.java:101)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:100)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:617)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:634)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1023)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:1003)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(ServletFileUpload.java:154)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest.processUpload(JakartaStreamMultiPartRequest.java:287)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest.parse(JakartaStreamMultiPartRequest.java:248)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:84)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:849)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:138)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
HH:mm:SS,SSS ERROR [stderr] (default task-11) 	at java.lang.Thread.run(Thread.java:748)

こちらはStruts2から出力されるサイズオーバーのスタックです。

HH:mm:SS,SSS INFO  [stdout] (default task-8) YYYY/MM/DD HH:mm:SS:SSS WARN  Request exceeded size limit!
HH:mm:SS,SSS INFO  [stdout] (default task-8) org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (13144152) exceeds the configured maximum (10485760)
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:968) ~[commons-fileupload-1.3.2.jar:1.3.2]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310) ~[commons-fileupload-1.3.2.jar:1.3.2]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334) ~[commons-fileupload-1.3.2.jar:1.3.2]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parseRequest(JakartaMultiPartRequest.java:192) ~[struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processUpload(JakartaMultiPartRequest.java:131) ~[struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:92) ~[struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:84) [struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:849) [struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:138) [struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) [struts2-core-2.3.32.jar:2.3.32]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) [wildfly-undertow-10.1.0.Final.jar!/:10.1.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) [wildfly-undertow-10.1.0.Final.jar!/:10.1.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) [undertow-servlet-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) [undertow-core-1.4.0.Final.jar!/:1.4.0.Final]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_144]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_144]
HH:mm:SS,SSS INFO  [stdout] (default task-8) 	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]

雑感

結局Wildflyで指定しているサイズをオーバーした時はブラウザは
ERR_CONNECTION_RESET になるので、なんだか解決されていない感。

参考

stackoverflow.com

stackoverflow.com

https://teratail.com/questions/67329

Undertow subsystem configuration - WildFly 10 - Project Documentation Editor

Hyper-Vを有効にする時のBIOSの設定 (HP EliteBook Folio 9470m)

概要

Hyper-Vを有効にして仮想環境などを構築しようとした場合、コントロールパネルからWindowsの機能でHyper-Vをインストールしますが、

Hyper-Vをインストールできません: ファームウェアで、仮想化サポートが無効になっています。

と出た際の、有効化の手順のメモです。

コントロールパネルからWindowsの機能を検索

f:id:ryoichi0102:20171017114158j:plain

Hyper-Vをインストールできません、と表示..

この後、マシンをシャットダウンしてBIOSに入ります。

f:id:ryoichi0102:20171017114209j:plain

BIOSを立ち上げます

電源を入れてF10を押下してメニューを表示させます。
メニューからF10キーを押下して、BIOS Setupを呼び出します。

f:id:ryoichi0102:20171017114228j:plain

Virtualization Technology (VTx)の有効化

System Configuration内のVirtualization Technology (VTx)をチェックします。
保存してBIOSメニューを終了させます。

f:id:ryoichi0102:20171017114240j:plain

再度、コントロールパネルからHyper-Vを有効にします

f:id:ryoichi0102:20171017114251j:plain

再起動して完了です

f:id:ryoichi0102:20171017114302j:plain

参考

Notebook PC シリーズ - BIOS で [Virtualization Technology] を有効にするには

GitHubのメールアドレスが漏れる?コミット時のメールアドレスにnoreplyを設定

経緯

釣りなタイトルでスミマセンm(_ _)m
前回、npmアカウントのプロフィールに指定するメールアドレスが全世界公開設定であり、その公開範囲が変更できないことを取り上げました。

その際、GitHubではnoreplyを設定することを推奨している。
と書かれており「あれ?これはもしや…」と思って試したらこれがビンゴで
他人のメールアドレスが引っこ抜けることが判りました。

たまに「あなたのGitHubでの活躍を拝見したのでスカウトします」的なspamがあり、このアドレスの入手方法が気になっていましたが、おそらく次に示す方法なのかなと思います。(※もちろん、必ずしもスカウトがspamとは限りません)

GitHubで使用しているメールアドレスも第三者に知れ渡っている?

ひょっとして"GitHubに登録しているメールアドレスが第三者に知れ渡ってるのではなかろうか"と思い、設定やヘルプを見直したところ答えは「厳密にはNo」。知れ渡る可能性があるのは、アカウントに登録したメールアドレスではなく、コミットに設定しているメールアドレスが取得できてしまいます。とはいえ、同じにしている方は多いのではないでしょうか?

実際に取得してみた

f:id:ryoichi0102:20171011090029p:plain

ご覧の通り、git cloneしてgit logするとメールアドレスが見えてしまいます。
(今回はGitHub上でメールアドレスを公開設定にしている 且つ 有名なリポジトリを使用させて頂きました)

クローラーなどで、たくさんのリポジトリからコミットログを取得してメールアドレスを収集するなんてことは容易にできてしまいます。

何故こういう事が起こりがちなのか?

GitHubではコミット時に使用するユーザー名とメールアドレスを設定できます。これを正しく設定しておくと、コミットログ一覧を表示した際にリンクされたりなどするため、Gitクライアントで設定する際に何気なくGitHubに登録しているメールアドレスを設定しがちです。

f:id:ryoichi0102:20171011234236p:plain

ではどうすればよいのか

メールアドレスを非公開にするにはGitHubで提供している noreply のメールアドレスを使用します。Web上で編集する場合にはアカウント設定にてKeep my email address privateを選択し、Gitクライアントなどから使用する場合にはコミットのメールアドレスにnoreplyのメールアドレスを設定します。

また、誤ってprivateのメールアドレスを使用してpushしないような設定もあります。

Blocking command line pushes that expose your personal email address - User Documentation
https://help.github.com/articles/blocking-command-line-pushes-that-expose-your-personal-email-address/

noreplyのアドレスはアカウント登録時期によって違う

Note: If you created your GitHub account after July 18, 2017, your GitHub-provided no-reply email address is a seven-digit ID number and your username in the form of ID+username@users.noreply.github.com. If you created your GitHub account prior to July 18, 2017, your GitHub-provided no-reply email address is your username in the form of username@users.noreply.github.com. You can get an ID-based GitHub-provided no-reply email address by selecting (or deselecting and reselecting) Keep my email address private in your email settings.

つまり、GitHubでnoreplyとして認識されるメールアドレスは、
・2017/06/18より後にアカウントを作成した場合は "7桁のID+ユーザー名"
・2017/06/18より前にアカウントを作成した場合は "ユーザー名"
これに @users.noreply.github.com を付けたものになります。

prior toは○○より後に、afterは○○より前に、なので 2017/06/18 ちょうどにアカウント登録した方は…どちらなんでしょうかw (これは一旦置いときます)

2017/06/18より後にアカウントを作成した場合のnoreplyメールアドレスの確認方法

【ID】+【ユーザー名】@users.noreply.github.com

これがGitHub内でサポートされるnoreplyのメールアドレスの形式になります。
【ID】部分は画面右上のアイコンメニュー⇒Settings⇒サイドメニューのEmails、ここで確認できます。

f:id:ryoichi0102:20171011182606p:plain

2017/06/18より前にアカウントを作成した場合のnoreplyメールアドレス

【ユーザー名】@users.noreply.github.com

簡単ですね。

Keep my email address private のチェックボックスをオンにしましょう。

We'll remove your public profile email and use 32690516+ryoichi0102@users.noreply.github.com when performing web-based Git operations and sending email on your behalf. If you want command line Git operations to use your private email you must set your email in Git.

とある通り、Web上で編集した場合は自動的に表示されているnoreplyのメールアドレスになりますが、Gitクライアントを使用してcommit/pushする場合は、Gitクライアントにこの設定をして下さい、とあります。

※ 上記 32690516 部分は各自違います。

noreplyアドレスの設定方法

noreplyなメールアドレスが解ったので、次は設定です。
これはCLIを使用した一般的なGitの設定と同じです。
既に設定されている場合は、二重でaddしなように注意しましょう。(上書きはされないので)

グローバルの設定であれば

git config --global --list

で設定一覧を確認して、設定が存在した場合は、

git config --global --unset user.email

で一旦削除した後に、noreplyのメールアドレスを設定します。

git config --global --add user.email my-github-user-name@users.noreply.github.com
または
git config --global --add user.email 32690516+ryoichi0102@users.noreply.github.com

です。

f:id:ryoichi0102:20171011235803p:plain

f:id:ryoichi0102:20171011235643p:plain

これで安心ですね!

参考

About commit email addresses - User Documentation
https://help.github.com/articles/about-commit-email-addresses/

github.com

追記

2020/02/12 少しでも読みやすくなるよう、文章を少し追記して、日本語の表現を見直しました。