-
Improvement
-
Resolution: Fixed
-
Major
-
2.11.0
-
None
-
4.4 M6
In a project feature for Univ Paris we fetch rss feeds from their main website, timeout seems too short in Ametys, as a result we can't display anything.
Here is the stacktrace :
Category: org.ametys.plugins.syndication.FeedCache
Message: Unable to read the RSS feed to the url :
[https://u-paris.fr/category/formation/feed]
Location: org.apache.cocoon.util.log.SLF4JLoggerAdapter.error(SLF4JLoggerAdapter.java:46)
Thrown:
java.net.SocketTimeoutException: Read timed out
at java.base/java.net.SocketInputStream.socketRead0(Native Method)
at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:448)
at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68)
at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1104)
at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:823)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at org.ametys.plugins.syndication.FeedCache.loadFeed(FeedCache.java:215)
at org.ametys.plugins.syndication.FeedCache$FeedCacheLoader.load(FeedCache.java:252)
at org.ametys.plugins.syndication.FeedCache$FeedCacheLoader.load(FeedCache.java:247)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at org.ametys.plugins.syndication.FeedCache.getFeed(FeedCache.java:166)
at org.ametys.plugins.wordpress.generator.WordpressFeedGenerator.generate(WordpressFeedGenerator.java:120)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:581)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:301)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:782)
at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:414)
at org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:101)
at org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:181)
at org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:140)
at org.apache.cocoon.components.source.SourceUtil.toDOM(SourceUtil.java:383)
at org.ametys.plugins.wordpress.helper.WordpressNewsHelper._saxFeed(WordpressNewsHelper.java:156)
at org.ametys.plugins.wordpress.helper.WordpressNewsHelper.wordpressRSS(WordpressNewsHelper.java:117)
at jdk.internal.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
The timeout was made short because if you have 10 rss stream, a 30 seconds timeout could lead to a page loading in 300 seconds just to wait.
So what wa can do it enahcement to add a config parameter