Skip to content

Conversation

basil
Copy link
Member

@basil basil commented Feb 12, 2022

See jenkinsci/stapler#321. Noticed when pulling in jenkinsci/pom#226 in #508, where I got the following errors:

Animal Sniffer errors
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:143: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:169: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:171: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:301: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:319: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:337: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:338: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:340: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:347: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:348: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:347: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:348: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:347: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:348: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:373: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:376: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:377: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:380: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:381: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:384: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:391: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:418: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:419: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:426: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:427: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:439: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:479: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:481: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:483: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:484: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:488: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:489: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:498: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:500: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:553: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:554: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:557: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:569: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:570: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java:573: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:62: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:65: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:65: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:87: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:107: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:126: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:128: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:143: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:144: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:146: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:152: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferUtils.java:166: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/DirectByteBufferPool.java:78: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/DirectByteBufferPool.java:87: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/DirectByteBufferPool.java:94: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/DirectByteBufferPool.java:107: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:164: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:167: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:191: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:192: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:207: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java:210: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:108: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:109: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:142: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.rewind()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:143: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.rewind()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:154: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:155: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:156: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/AckFilterLayer.java:157: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/NIONetworkLayer.java:154: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/NIONetworkLayer.java:163: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/NIONetworkLayer.java:218: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:340: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:363: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:369: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:387: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:404: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:511: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java:525: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/BIONetworkLayer.java:285: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/BIONetworkLayer.java:298: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/BIONetworkLayer.java:192: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/BIONetworkLayer.java:197: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java:161: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java:204: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java:209: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java:218: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java:226: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:162: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:164: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:185: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:278: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:280: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.position(int)
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:301: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/impl/ConnectionHeadersFilterLayer.java:491: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java:218: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java:220: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java:249: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java:251: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/NetworkLayer.java:190: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/NetworkLayer.java:192: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/NetworkLayer.java:209: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/org/jenkinsci/remoting/protocol/NetworkLayer.java:211: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:170: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:172: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:295: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:297: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:298: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:299: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.limit(int)
[ERROR] src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java:301: Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.flip()

Java 11 used covariance in the return type of some ByteBuffer methods, which breaks when running on Java 8. Downcasting to the base class works around the problem.

Note that this is not a problem for us in practice, because we always compile releases on Java 8. This would only be a problem if we compiled on Java 11 and ran on Java 8.

This PR can be reverted if and when we require Java 11 to compile this repository.

@jeffret-b jeffret-b merged commit bd4f996 into jenkinsci:master Feb 13, 2022
@basil basil deleted the ByteBuffer branch February 13, 2022 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants