Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce log level for client errors in Jetty 9 WebSocket handler #2485

Merged
merged 1 commit into from Nov 14, 2022

Conversation

slovdahl
Copy link
Contributor

Client errors like timeouts and EOFs are currently logged as errors. While this is probably useful in development, on instances with many connected clients it will likely just be noise.

At the moment, log rows like these are quite common:

2022-11-14 08:11:32 ERROR [o.a.c.Jetty9WebSocketHandler] ::
org.eclipse.jetty.io.EofException: null
        at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:279)
        at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
        at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
        at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
        at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
        at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:193)
        at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
        at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:181)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:510)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
        at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
        at sun.nio.ch.IOUtil.write(IOUtil.java:148)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503)
        at java.nio.channels.SocketChannel.write(SocketChannel.java:502)
        at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273)
        ... 22 common frames omitted
2022-11-14 08:11:25 ERROR [o.a.c.Jetty9WebSocketHandler] ::
org.eclipse.jetty.websocket.api.CloseException: java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onReadTimeout(AbstractWebSocketConnection.java:564)
        at org.eclipse.jetty.io.AbstractConnection.onFillInterestedFailed(AbstractConnection.java:172)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillInterestedFailed(AbstractWebSocketConnection.java:539)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.failed(AbstractConnection.java:317)
        at org.eclipse.jetty.io.FillInterest.onFail(FillInterest.java:140)
        at org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:407)
        at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171)
        at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
        ... 9 common frames omitted

Client errors like timeouts and EOFs are currently logged as errors. While this
is probably useful in development, on instances with many connected clients it
will likely just be noise.

At the moment, log rows like these are quite common:

```
2022-11-14 08:11:32 ERROR [o.a.c.Jetty9WebSocketHandler] ::
org.eclipse.jetty.io.EofException: null
        at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:279)
        at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
        at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
        at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
        at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
        at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:193)
        at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
        at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:181)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:510)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
        at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
        at sun.nio.ch.IOUtil.write(IOUtil.java:148)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503)
        at java.nio.channels.SocketChannel.write(SocketChannel.java:502)
        at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273)
        ... 22 common frames omitted
```

```
2022-11-14 08:11:25 ERROR [o.a.c.Jetty9WebSocketHandler] ::
org.eclipse.jetty.websocket.api.CloseException: java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onReadTimeout(AbstractWebSocketConnection.java:564)
        at org.eclipse.jetty.io.AbstractConnection.onFillInterestedFailed(AbstractConnection.java:172)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillInterestedFailed(AbstractWebSocketConnection.java:539)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.failed(AbstractConnection.java:317)
        at org.eclipse.jetty.io.FillInterest.onFail(FillInterest.java:140)
        at org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:407)
        at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171)
        at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
        ... 9 common frames omitted
```
@slovdahl
Copy link
Contributor Author

Thoughts about this @jfarcand? Or do we normally log client errors like this on ERROR level? It's of course possible to suppress them in the application too, but IMO you normally want at least all ERROR log rows logged. And these are usually not really actionable errors. In most cases they are just network issues on the client side.

@jfarcand
Copy link
Member

@slovdahl Agree, and the amount produced can be huge

@jfarcand jfarcand merged commit 4228070 into Atmosphere:atmosphere-2.7.x Nov 14, 2022
@slovdahl slovdahl deleted the less-jetty-9-logging branch November 14, 2022 12:36
@slovdahl
Copy link
Contributor Author

slovdahl commented Jan 25, 2023

@jfarcand is it fine if I publish a new 2.7 release with this fix? Assuming I still have access to do that 😁 Is https://github.com/Atmosphere/atmosphere/wiki/How-to-release-Atmosphere still the way to do it?

@jfarcand
Copy link
Member

@slovdahl Yes sure go aheads. Let me know if that is no longer working

@slovdahl
Copy link
Contributor Author

slovdahl commented Jan 26, 2023

I gave it a try but mvn release:prepare -DautoVersionSubmodules=true fails on javadoc generation 🤔 Tested with both Temurin 8 and 11.

    [INFO] --- maven-javadoc-plugin:2.7:jar (attach-javadocs) @ atmosphere-runtime ---
    [INFO] The goal 'org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc' has not be previously called for the project: 'org.atmosphere:atmosphere-buildtools:jar:2.7.8'. Trying to invoke it...
    [INFO] The goal 'org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc' has not be previously called for the project: 'org.atmosphere:atmosphere-annotations:bundle:2.7.8'. Trying to invoke it...
    [ERROR] MavenInvocationException: Error when invoking Maven, consult the invoker log file: /home/slovdahl/dev/external/atmosphere/modules/cpr/target/invoker/maven-javadoc-plugin1269237163.txt
    [INFO] The goal 'org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc' has not be previously called for the project: 'org.atmosphere:atmosphere-jersey:bundle:2.7.8'. Trying to invoke it...
    [ERROR] MavenInvocationException: Error when invoking Maven, consult the invoker log file: /home/slovdahl/dev/external/atmosphere/modules/cpr/target/invoker/maven-javadoc-plugin447912154.txt
    [INFO] The goal 'org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc' has not be previously called for the project: 'org.atmosphere:atmosphere-runtime-native:bundle:2.7.8'. Trying to invoke it...
    [ERROR] MavenInvocationException: Error when invoking Maven, consult the invoker log file: /home/slovdahl/dev/external/atmosphere/modules/cpr/target/invoker/maven-javadoc-plugin71400399.txt
    [ERROR] Error fetching link: /home/slovdahl/dev/external/atmosphere/buildtools/target/apidocs/package-list. Ignored it.
    [ERROR] Error fetching link: /home/slovdahl/dev/external/atmosphere/modules/annotations/target/apidocs/package-list. Ignored it.
    [ERROR] Error fetching link: /home/slovdahl/dev/external/atmosphere/modules/jersey/target/apidocs/package-list. Ignored it.
    [ERROR] Error fetching link: /home/slovdahl/dev/external/atmosphere/modules/native/target/apidocs/package-list. Ignored it.
    [INFO] 


    ...


    100 errors
    100 warnings
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary for atmosphere-project 2.7.8:
    [INFO] 
    [INFO] atmosphere-buildtools .............................. SUCCESS [ 12.027 s]
    [INFO] atmosphere-project ................................. SUCCESS [  0.908 s]
    [INFO] atmosphere-runtime ................................. FAILURE [ 48.971 s]
    [INFO] atmosphere-annotations ............................. SKIPPED
    [INFO] atmosphere-jersey .................................. SKIPPED
    [INFO] atmosphere-runtime-native .......................... SKIPPED
    [INFO] atmosphere-modules ................................. SKIPPED
    [INFO] atmosphere-runtime-libs ............................ SKIPPED
    [INFO] atmosphere-jersey-libs ............................. SKIPPED
    [INFO] atmosphere-assembly ................................ SKIPPED
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:02 min
    [INFO] Finished at: 2023-01-26T15:47:41+02:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.7:jar (attach-javadocs) on project atmosphere-runtime: MavenReportException: Error while creating archive:
    [ERROR] Exit code: 1 - javadoc: warning - Multiple sources of package comments found for package "javax.servlet"
    [ERROR] javadoc: warning - Multiple sources of package comments found for package "javax.servlet.http"
    [ERROR] javadoc: warning - Multiple sources of package comments found for package "javax.servlet.annotation"
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/DefaultWebSocketProcessor.java:570: warning: no @param for webSocket
    [ERROR]     public final void dispatch(WebSocket webSocket, final AtmosphereRequest request, final AtmosphereResponse r) {
    [ERROR]                       ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:68: warning: no description for @param
    [ERROR]      * @param request
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:69: warning: no description for @throws
    [ERROR]      * @throws IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:71: warning: no @param for webSocket
    [ERROR]     void open(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse response) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:71: warning: no @param for response
    [ERROR]     void open(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse response) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:76: warning: no description for @param
    [ERROR]      * @param webSocketMessage
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:78: warning: no @param for webSocket
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, String webSocketMessage);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:83: warning: no description for @param
    [ERROR]      * @param data
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:85: warning: no @param for webSocket
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, byte[] data, int offset, int length);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:85: warning: no @param for offset
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, byte[] data, int offset, int length);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:85: warning: no @param for length
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, byte[] data, int offset, int length);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:90: warning: no description for @param
    [ERROR]      * @param stream
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:92: warning: no @param for webSocket
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, InputStream stream);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:97: warning: no description for @param
    [ERROR]      * @param reader
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:99: warning: no @param for webSocket
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, Reader reader) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:99: warning: no @throws for java.io.IOException
    [ERROR]     void invokeWebSocketProtocol(WebSocket webSocket, Reader reader) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:104: warning: no description for @param
    [ERROR]      * @param closeCode
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:106: warning: no @param for webSocket
    [ERROR]     void close(WebSocket webSocket, int closeCode);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:111: warning: no description for @param
    [ERROR]      * @param webSocketEvent
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:113: warning: no @param for webSocket
    [ERROR]     void notifyListener(WebSocket webSocket, WebSocketEvent<?> webSocketEvent);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:274: warning: no @return
    [ERROR]     public WebSocket broadcast(Object o) {
    [ERROR]                      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:344: warning: no @throws for java.io.IOException
    [ERROR]     abstract public WebSocket write(String s) throws IOException;
    [ERROR]                               ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:354: warning: no @throws for java.io.IOException
    [ERROR]     abstract public WebSocket write(byte[] b, int offset, int length) throws IOException;
    [ERROR]                               ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:362: warning: no @throws for java.io.IOException
    [ERROR]     public WebSocket write(byte[] b) throws IOException {
    [ERROR]                      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:374: warning: no @param for statusCode
    [ERROR]     public void close(int statusCode, String reasonText) {
    [ERROR]                 ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:374: warning: no @param for reasonText
    [ERROR]     public void close(int statusCode, String reasonText) {
    [ERROR]                 ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:410: error: unknown tag: oaram
    [ERROR]      * @oaram object
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:412: warning: no @param for attachment
    [ERROR]     public WebSocket attachment(Object attachment) {
    [ERROR]                      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:412: warning: no @return
    [ERROR]     public WebSocket attachment(Object attachment) {
    [ERROR]                      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocket.java:420: warning: no @return
    [ERROR]     public Object attachment() {
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereInterceptorWriter.java:110: error: unterminated inline tag
    [ERROR]      * @return this
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereInterceptorWriter.java:125: error: unterminated inline tag
    [ERROR]      * @param index
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereInterceptorWriter.java:125: warning: no description for @param
    [ERROR]      * @param index
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:30: warning: no description for @param
    [ERROR]      * @param location
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:31: warning: no description for @throws
    [ERROR]      * @throws IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:33: warning: no @param for r
    [ERROR]     AsyncIOWriter redirect(AtmosphereResponse r, String location) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:33: warning: no @return
    [ERROR]     AsyncIOWriter redirect(AtmosphereResponse r, String location) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:39: warning: no description for @param
    [ERROR]      * @param message
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:40: warning: no description for @throws
    [ERROR]      * @throws IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:42: warning: no @param for r
    [ERROR]     AsyncIOWriter writeError(AtmosphereResponse r, int errorCode, String message) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:42: warning: no @return
    [ERROR]     AsyncIOWriter writeError(AtmosphereResponse r, int errorCode, String message) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:48: warning: no description for @throws
    [ERROR]      * @throws java.io.IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:50: warning: no @param for r
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, String data) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:50: warning: no @return
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, String data) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:56: warning: no description for @throws
    [ERROR]      * @throws IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:58: warning: no @param for r
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, byte[] data) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:58: warning: no @return
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, byte[] data) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:66: warning: no description for @throws
    [ERROR]      * @throws IOException
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:68: warning: no @param for r
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, byte[] data, int offset, int length) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:68: warning: no @return
    [ERROR]     AsyncIOWriter write(AtmosphereResponse r, byte[] data, int offset, int length) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:73: warning: no @param for r
    [ERROR]     void close(AtmosphereResponse r) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:73: warning: no @throws for java.io.IOException
    [ERROR]     void close(AtmosphereResponse r) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:78: warning: no @param for r
    [ERROR]     AsyncIOWriter flush(AtmosphereResponse r) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:78: warning: no @return
    [ERROR]     AsyncIOWriter flush(AtmosphereResponse r) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AsyncIOWriter.java:78: warning: no @throws for java.io.IOException
    [ERROR]     AsyncIOWriter flush(AtmosphereResponse r) throws IOException;
    [ERROR]                   ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:32: warning: no description for @param
    [ERROR]      * @param data
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:33: warning: no description for @param
    [ERROR]      * @param offset
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:34: warning: no description for @param
    [ERROR]      * @param length
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:36: warning: no @throws for java.io.IOException
    [ERROR]     void onByteMessage(WebSocket webSocket, byte[] data, int offset, int length) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:42: warning: no description for @param
    [ERROR]      * @param data
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:44: warning: no @throws for java.io.IOException
    [ERROR]     void onTextMessage(WebSocket webSocket, String data) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:49: warning: no description for @param
    [ERROR]      * @param webSocket
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:51: warning: no @throws for java.io.IOException
    [ERROR]     void onOpen(WebSocket webSocket) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:56: warning: no description for @param
    [ERROR]      * @param webSocket
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:63: warning: no description for @param
    [ERROR]      * @param webSocket
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketHandler.java:65: warning: no @param for t
    [ERROR]     void onError(WebSocket webSocket, WebSocketProcessor.WebSocketException t);
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProcessor.java:33: error: self-closing element not allowed
    [ERROR]  * <br/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketProtocol.java:63: warning: no @param for data
    [ERROR]     List<AtmosphereRequest> onMessage(WebSocket webSocket, byte[] data, int offset, int length);
    [ERROR]                             ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketStreamingHandler.java:34: warning: no description for @param
    [ERROR]      * @param inputStream
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketStreamingHandler.java:36: warning: no @throws for java.io.IOException
    [ERROR]     void onBinaryStream(WebSocket webSocket, InputStream inputStream) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketStreamingHandler.java:42: warning: no description for @param
    [ERROR]      * @param reader
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/WebSocketStreamingHandler.java:44: warning: no @throws for java.io.IOException
    [ERROR]     void onTextStream(WebSocket webSocket, Reader reader) throws IOException;
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/protocol/EchoProtocol.java:32: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/protocol/SimpleHttpProtocol.java:41: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/protocol/SimpleHttpProtocol.java:44: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/protocol/StreamingHttpProtocol.java:40: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/websocket/protocol/StreamingHttpProtocol.java:43: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:44: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:44: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:48: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:48: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:49: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/AtmosphereResourceLifecycleInterceptor.java:49: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/HeartbeatInterceptor.java:356: warning: no @return
    [ERROR]     public HeartbeatInterceptor clock(final int interval,
    [ERROR]                                 ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/HeartbeatInterceptor.java:60: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/HeartbeatInterceptor.java:60: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/HeartbeatInterceptor.java:66: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/HeartbeatInterceptor.java:66: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/InvokationOrder.java:21: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/JavaScriptProtocol.java:51: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/JavaScriptProtocol.java:51: warning: empty <p> tag
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/NginxInterceptor.java:28: error: self-closing element not allowed
    [ERROR]  * <br/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/SuspendTrackerInterceptor.java:37: error: unexpected end tag: </p>
    [ERROR]  * </p>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/interceptor/TrackMessageSizeB64Interceptor.java:33: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/AtmosphereAnnotation.java:38: warning: no @return
    [ERROR]     Class<? extends Annotation> value();
    [ERROR]                                 ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereHandlerService.java:80: warning: no @return
    [ERROR]     String[] atmosphereConfig() default {};
    [ERROR]              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereHandlerService.java:52: warning: no @return
    [ERROR]     Class<? extends BroadcastFilter>[] broadcastFilters() default {};
    [ERROR]                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereHandlerService.java:85: warning: no @return
    [ERROR]     Class<? extends AtmosphereInterceptor>[] interceptors() default {};
    [ERROR]                                              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereHandlerService.java:99: warning: no @return
    [ERROR]     Class<? extends AtmosphereResourceEventListener>[] listeners() default {};
    [ERROR]                                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:78: warning: no @return
    [ERROR]     String[] atmosphereConfig() default {};
    [ERROR]              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:57: warning: no @return
    [ERROR]     Class<? extends BroadcastFilter>[] broadcastFilters() default {};
    [ERROR]                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:104: warning: no @return
    [ERROR]     boolean dispatch() default true;
    [ERROR]             ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:70: warning: no @return
    [ERROR]     Class<? extends AtmosphereInterceptor>[] interceptors() default {
    [ERROR]                                              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:52: warning: no @return
    [ERROR]     Class<? extends AtmosphereResourceEventListener>[] listeners() default {};
    [ERROR]                                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:95: warning: no @return
    [ERROR]     String path() default "/";
    [ERROR]            ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/AtmosphereService.java:90: warning: no @return
    [ERROR]     String servlet() default "";
    [ERROR]            ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:45: error: tag not allowed here: <blockquote>
    [ERROR]  * <pre><blockquote>
    [ERROR]         ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:46: error: unknown tag: AtmosphereHandlerService
    [ERROR]  @AtmosphereHandlerService(
    [ERROR]  ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:93: warning: no @return
    [ERROR]     String[] atmosphereConfig() default {};
    [ERROR]              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:97: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:107: warning: no @return
    [ERROR]     Class<? extends BroadcastFilter>[] broadcastFilters() default {};
    [ERROR]                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:87: warning: no @return
    [ERROR]     Class<? extends AtmosphereInterceptor>[] interceptors() default {};
    [ERROR]                                              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/ManagedService.java:73: warning: no @return
    [ERROR]     Class<? extends AtmosphereResourceEventListener>[] listeners() default {};
    [ERROR]                                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/Message.java:44: warning: no @return
    [ERROR]     Class<? extends Decoder<?,?>>[] decoders() default {};
    [ERROR]                                     ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/Message.java:39: warning: no @return
    [ERROR]     Class<? extends Encoder<?,?>>[] encoders() default {};
    [ERROR]                                     ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/MeteorService.java:72: warning: no @return
    [ERROR]     String[] atmosphereConfig() default {};
    [ERROR]              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/MeteorService.java:52: warning: no @return
    [ERROR]     Class<? extends BroadcastFilter>[] broadcastFilters() default {};
    [ERROR]                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/MeteorService.java:77: warning: no @return
    [ERROR]     Class<? extends AtmosphereInterceptor>[] interceptors() default {};
    [ERROR]                                              ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/service/MeteorService.java:91: warning: no @return
    [ERROR]     Class<? extends AtmosphereResourceEventListener>[] listeners() default {};
    [ERROR]                                                        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Decoder.java:23: error: malformed HTML
    [ERROR]      public final class StringBufferDecoder implements Decoder<String, StringBuffer> {
    [ERROR]                                                               ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Decoder.java:23: error: bad use of '>'
    [ERROR]      public final class StringBufferDecoder implements Decoder<String, StringBuffer> {
    [ERROR]                                                                                    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Decoder.java:25: error: unknown tag: Override
    [ERROR]          @Override
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Decoder.java:34: error: unknown tag: Message
    [ERROR]      @Message(decoders = {StringBufferDecoder.class})
    [ERROR]      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Decoder.java:40: error: unknown tag: Message
    [ERROR]  * @Message annotated method.
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Encoder.java:26: error: unknown tag: Override
    [ERROR]          @Override
    [ERROR]          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/config/managed/Encoder.java:35: error: unknown tag: Message
    [ERROR]      @Message(encoders = {StringBufferEncoder.class})
    [ERROR]      ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereHandler.java:85: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereHandler.java:97: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/AtmosphereHandler.java:100: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/handler/AbstractReflectorAtmosphereHandler.java:63: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/client/TrackMessageSizeFilter.java:29: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/client/TrackMessageSizeFilter.java:32: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/client/TrackMessageSizeFilter.java:35: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/client/TrackMessageSizeInterceptor.java:49: error: self-closing element not allowed
    [ERROR]  * <p/>
    [ERROR]    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:339: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:300: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:994: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:589: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:596: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:499: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:368: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:375: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:455: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:492: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:263: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:515: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:523: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:700: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:582: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:270: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:332: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:98: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:410: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:91: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:84: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:895: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:888: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:161: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:354: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:325: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:617: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:624: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:318: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:863: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:865: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:573: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:671: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:787: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:728: error: unterminated signature
    [ERROR]      * Wait X milliseconds before considering the {@link AtmosphereResource} closed. This is useful when {@link org.atmosphere.util.Utils#atmosphereProtocol(AtmosphereRequest r))}
    [ERROR]                                                                                                          ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:730: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:657: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:484: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:140: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:803: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:970: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:811: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:812: error: self-closing element not allowed
    [ERROR]      * Default: false (Auto initialization enabled)<br/>
    [ERROR]                                                    ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:814: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:815: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:825: error: unexpected content
    [ERROR]      * @see {@see https://github.com/Atmosphere/atmosphere/issues/1695}
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:530: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:707: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:285: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:307: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:311: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:154: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:603: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:758: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:610: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:686: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:389: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:403: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:977: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:631: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:632: error: bad HTML entity
    [ERROR]      * Default: "[a-zA-Z0-9-&.*_=@;\?]+"<br>
    [ERROR]                             ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:780: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] /home/slovdahl/dev/external/atmosphere/modules/cpr/src/main/java/org/atmosphere/cpr/ApplicationConfig.java:773: error: self-closing element not allowed
    [ERROR]      * <p/>
    [ERROR]        ^
    [ERROR] 
    [ERROR] Command line was: /usr/lib/jvm/temurin-8-jdk-amd64/jre/../bin/javadoc @options @packages
    [ERROR] 
    [ERROR] Refer to the generated Javadoc files in '/home/slovdahl/dev/external/atmosphere/modules/cpr/target/apidocs' dir.
    [ERROR] 
    [ERROR] -> [Help 1]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR] 
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR]   mvn <args> -rf :atmosphere-runtime
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for atmosphere-project 2.7.8-SNAPSHOT:
[INFO] 
[INFO] atmosphere-buildtools .............................. SKIPPED
[INFO] atmosphere-project ................................. FAILURE [01:04 min]
[INFO] atmosphere-runtime ................................. SKIPPED
[INFO] atmosphere-annotations ............................. SKIPPED
[INFO] atmosphere-jersey .................................. SKIPPED
[INFO] atmosphere-runtime-native .......................... SKIPPED
[INFO] atmosphere-modules ................................. SKIPPED
[INFO] atmosphere-runtime-libs ............................ SKIPPED
[INFO] atmosphere-jersey-libs ............................. SKIPPED
[INFO] atmosphere-assembly ................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:05 min
[INFO] Finished at: 2023-01-26T15:47:41+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:3.0.0-M1:prepare (default-cli) on project atmosphere-project: Maven execution failed, exit code: '1' -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :atmosphere-project

@jfarcand
Copy link
Member

Add

	<profiles>
		<profile>
			<id>disable-java8-doclint</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<properties>
				<additionalparam>-Xdoclint:none</additionalparam>
			</properties>
		</profile>
	</profiles>

to your settings.xml and that will make it work

@slovdahl
Copy link
Contributor Author

Thanks! That fixed it 🙂 Now I just need to wait for Sonatype's Nexus to start working again https://issues.sonatype.org/projects/OSSRH/issues/OSSRH-88251 🙈

@slovdahl slovdahl added the 2.7.8 label Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants