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

Incompatibility issue with Velocity and Java 19 #950

Closed
TheSerumDev opened this issue Feb 17, 2023 · 3 comments
Closed

Incompatibility issue with Velocity and Java 19 #950

TheSerumDev opened this issue Feb 17, 2023 · 3 comments
Labels
type: bug Something isn't working

Comments

@TheSerumDev
Copy link

Currently, the project is using Java 19, but Guice only supports up to Java 17. As a result, the plugin is unable to utilize the full potential of Java 19. This incompatibility issue needs to be addressed to ensure that the project is using the most recent Java version while still being able to use Velocity with Guice implementation.

-- Log --
2023-02-17 01:34:53,260 Log4j2-TF-1-AsyncLogger[AsyncContext@7a4f0f29]-1 ERROR An exception occurred processing Appender TerminalConsole com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 63
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2051)
at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4941)
at com.google.inject.internal.util.StackTraceElements.forMember(StackTraceElements.java:67)
at com.google.inject.internal.SourceFormatter.formatMember(SourceFormatter.java:91)
at com.google.inject.internal.SourceFormatter.formatInjectionPoint(SourceFormatter.java:97)
at com.google.inject.internal.SourceFormatter.format(SourceFormatter.java:49)
at com.google.inject.internal.GenericErrorDetail.formatDetail(GenericErrorDetail.java:26)
at com.google.inject.spi.ErrorDetail.format(ErrorDetail.java:63)
at com.google.inject.internal.Messages.formatMessages(Messages.java:90)
at com.google.inject.ProvisionException.getMessage(ProvisionException.java:60)
at org.apache.logging.log4j.core.impl.ThrowableProxy.(ThrowableProxy.java:109)
at org.apache.logging.log4j.core.impl.ThrowableProxy.(ThrowableProxy.java:97)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.getThrownProxy(RingBufferLogEvent.java:335)
at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:63)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:44)
at net.minecrell.terminalconsole.HighlightErrorConverter.format(HighlightErrorConverter.java:93)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:44)
at org.apache.logging.log4j.core.layout.PatternLayout$PatternSelectorSerializer.toSerializable(PatternLayout.java:560)
at org.apache.logging.log4j.core.layout.PatternLayout$PatternSelectorSerializer.toSerializable(PatternLayout.java:551)
at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:216)
at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:59)
at net.minecrell.terminalconsole.TerminalConsoleAppender.append(TerminalConsoleAppender.java:256)
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:683)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:641)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:624)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:612)
at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:98)
at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:488)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:156)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:51)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 63
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:199)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:180)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:166)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:287)
at com.google.inject.internal.util.LineNumbers.(LineNumbers.java:69)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:48)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:44)
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)
... 40 more

2023-02-17 01:34:53,283 Log4j2-TF-1-AsyncLogger[AsyncContext@7a4f0f29]-1 ERROR An exception occurred processing Appender File com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 63
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2051)
at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4941)
at com.google.inject.internal.util.StackTraceElements.forMember(StackTraceElements.java:67)
at com.google.inject.internal.SourceFormatter.formatMember(SourceFormatter.java:91)
at com.google.inject.internal.SourceFormatter.formatInjectionPoint(SourceFormatter.java:97)
at com.google.inject.internal.SourceFormatter.format(SourceFormatter.java:49)
at com.google.inject.internal.GenericErrorDetail.formatDetail(GenericErrorDetail.java:26)
at com.google.inject.spi.ErrorDetail.format(ErrorDetail.java:63)
at com.google.inject.internal.Messages.formatMessages(Messages.java:90)
at com.google.inject.ProvisionException.getMessage(ProvisionException.java:60)
at org.apache.logging.log4j.core.impl.ThrowableProxy.(ThrowableProxy.java:109)
at org.apache.logging.log4j.core.impl.ThrowableProxy.(ThrowableProxy.java:97)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.getThrownProxy(RingBufferLogEvent.java:335)
at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:63)
at org.apache.logging.log4j.core.layout.PatternLayout$NoFormatPatternSerializer.toSerializable(PatternLayout.java:342)
at org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:240)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:225)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:59)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:215)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:208)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:199)
at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:243)
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:683)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:641)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:624)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:612)
at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:98)
at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:488)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:156)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:51)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 63
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:199)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:180)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:166)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:287)
at com.google.inject.internal.util.LineNumbers.(LineNumbers.java:69)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:48)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:44)
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)
... 40 more

@4drian3d

This comment was marked as outdated.

@electronicboy
Copy link
Member

The proxy will load fine on 19, but issue is that plugins compiled against 19 is likely not going to work properly due to the outdated asm version that guice uses internally

The issue here is that, as stated, guice is using an outdated version of ASM; This is probably a "wontfix" on our side, as while this is mitigable, it's far too much of a headache to do so properly, and not particularly worth it

@4drian3d
Copy link
Contributor

Resolved in #1016

@Nacioszeczek Nacioszeczek added the type: bug Something isn't working label Aug 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants