Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)
Benoit, I'm cautiously optimistic. I had forgotten the discussion a few months back about mandating Java 11 for subsequent james releases. By default AWS EC2 instances recommend Java 8. So I figured out how to install Java 11 and convert to it as the default for the runtime environment. I haven't seen the exceptions since. That would explain the exception description referring to class instance differences. So hopefully Thanks again. Jerry On 2/5/2020 8:42 PM, Tellier Benoit wrote: Hi Jerry, Guava is a very commonly spread java utility library in the java world. It is different from guice which is a dependency injection library. Guice uses guava but that's all. In James code base we uses guava mostly for immutable collections and preconditions. Guice is not included in server/app dependencies, nothing to worry on this front. On 06/02/2020 00:42, Jerry Malcolm wrote: Hi Benoit, Thanks for the info. I added my custom matcher and mailet jars to pom.xml and ran the mvn dependency tree command from the link. The dependency-tree run completed successfully. The only two references to my custom jars were warnings saying I should use a variable instead of hardcoding the path to the jars. I also repeatedly got the message: Verbose not supported since maven-dependency-plugin 3.0. But basically, the dependency tree didn't appear to find any problems. I understand what you said about Guavate bridging Guava and java8. But Guava is part of Guice, correct? Since my configuration is spring/jpa, should I even be going into code that talks to Guice? Could that be the problem? Jerry On 2/5/2020 1:23 AM, Tellier Benoit wrote: Hi Jerry, Looking at https://mvnrepository.com/artifact/com.github.steveash.guavate/guavate Guavate is a tiny library to help bridge the gap between gauva and java8 while the Guava team figures out what they are going to release We use it as a java utility for that very purpose. Now about your issue let me suggest the following debug procedure: - From master james-server repository - Add the dependency to your custom mailet jars in server/app/pom.xml - Follow https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html in server/app Once you identify the source of conflicts, fixing the error should be easy. Benoit On 05/02/2020 12:43, Jerry Malcolm wrote: I need to bump this post back to the top of the queue. I'm totally blocked on this one. This is only occurring on my customized installation (at least I haven't gotten it to occur in the out-of-the-box installation). But knowing that really hasn't helped me any. I know I'm doing something to cause this. But I really just need a brief explanation as to what this code (in the stack trace below) is doing just to give me a fighting chance. I just need somebody to tell me what Guavate's lambda code is trying to do here and what data it's working on. What class is expected? The error description on google says a class didn't get compiled with the latest code. But that makes no sense. I built James and my mailets from scratch with the latest master. I found a Guavate.java on the web. But the line numbers didn't match up. Is something getting serialize, possibly with one class and deserialized with another class? Just let me know what is supposed to happen in these lines of code, and I'll see where I can take it from there. BTW... it appears that Guavate is part of Guice. I'm still using spring/jpa... no Guice... Is some configuration I have trying to kick me into some Guice code? Thanks as always. Jerry On 2/1/2020 12:18 AM, Jerry Malcolm wrote: I have created a completely separate instance of James from my current running production circa last October for a different client. It was built from the latest master on github as of yesterday. After publishing it to my EC2 instance, I started adding my my specific conf files and jar files. I was able to get it to receive mail and show it in Tomcat. It can also send mail. Then after about 30 minutes, it starts failing on IMAP calls. I have created totally new instances in new folders from the build three different times, and get the same behavior. Works fine for a while. Then decides to fail. After it fails, nothing I do can make it recover. I've never seen anything like these exceptions. It's failing on a 'github.steveash.guavate' class (???). Not sure where that came from. Really curious why it works for a while and then starts failing. TW, I have a few custom mailets and several jar files to support them. But none of the jars have class names anywhere close to the ones in the stack dump. So I don't think there is a jar conflict. Just need a bit of info about what a "vtable stub" is and what Guavate's lambda code is trying to do in this area of the code? The rest of the stack dump is the IMAP processor and netty stuff for IMAP. Exception occurs when IMAP client
Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)
Hi Jerry, Guava is a very commonly spread java utility library in the java world. It is different from guice which is a dependency injection library. Guice uses guava but that's all. In James code base we uses guava mostly for immutable collections and preconditions. Guice is not included in server/app dependencies, nothing to worry on this front. On 06/02/2020 00:42, Jerry Malcolm wrote: > Hi Benoit, > > Thanks for the info. I added my custom matcher and mailet jars to > pom.xml and ran the mvn dependency tree command from the link. The > dependency-tree run completed successfully. The only two references to > my custom jars were warnings saying I should use a variable instead of > hardcoding the path to the jars. I also repeatedly got the message: > Verbose not supported since maven-dependency-plugin 3.0. But basically, > the dependency tree didn't appear to find any problems. > > I understand what you said about Guavate bridging Guava and java8. But > Guava is part of Guice, correct? Since my configuration is spring/jpa, > should I even be going into code that talks to Guice? Could that be the > problem? > > Jerry > > On 2/5/2020 1:23 AM, Tellier Benoit wrote: >> Hi Jerry, >> >> Looking at >> https://mvnrepository.com/artifact/com.github.steveash.guavate/guavate >> >> Guavate is a tiny library to help bridge the gap between gauva and java8 >> while the Guava team figures out what they are going to release >> >> We use it as a java utility for that very purpose. >> >> Now about your issue let me suggest the following debug procedure: >> >> - From master james-server repository >> - Add the dependency to your custom mailet jars in server/app/pom.xml >> - Follow >> https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html >> >> in server/app >> >> Once you identify the source of conflicts, fixing the error should be >> easy. >> >> Benoit >> >> On 05/02/2020 12:43, Jerry Malcolm wrote: >>> I need to bump this post back to the top of the queue. I'm totally >>> blocked on this one. >>> >>> This is only occurring on my customized installation (at least I haven't >>> gotten it to occur in the out-of-the-box installation). But knowing that >>> really hasn't helped me any. I know I'm doing something to cause this. >>> But I really just need a brief explanation as to what this code (in the >>> stack trace below) is doing just to give me a fighting chance. I just >>> need somebody to tell me what Guavate's lambda code is trying to do here >>> and what data it's working on. What class is expected? The error >>> description on google says a class didn't get compiled with the latest >>> code. But that makes no sense. I built James and my mailets from >>> scratch with the latest master. I found a Guavate.java on the web. But >>> the line numbers didn't match up. Is something getting serialize, >>> possibly with one class and deserialized with another class? Just let >>> me know what is supposed to happen in these lines of code, and I'll see >>> where I can take it from there. >>> >>> BTW... it appears that Guavate is part of Guice. I'm still using >>> spring/jpa... no Guice... Is some configuration I have trying to kick me >>> into some Guice code? >>> >>> Thanks as always. >>> >>> Jerry >>> >>> >>> On 2/1/2020 12:18 AM, Jerry Malcolm wrote: I have created a completely separate instance of James from my current running production circa last October for a different client. It was built from the latest master on github as of yesterday. After publishing it to my EC2 instance, I started adding my my specific conf files and jar files. I was able to get it to receive mail and show it in Tomcat. It can also send mail. Then after about 30 minutes, it starts failing on IMAP calls. I have created totally new instances in new folders from the build three different times, and get the same behavior. Works fine for a while. Then decides to fail. After it fails, nothing I do can make it recover. I've never seen anything like these exceptions. It's failing on a 'github.steveash.guavate' class (???). Not sure where that came from. Really curious why it works for a while and then starts failing. TW, I have a few custom mailets and several jar files to support them. But none of the jars have class names anywhere close to the ones in the stack dump. So I don't think there is a jar conflict. Just need a bit of info about what a "vtable stub" is and what Guavate's lambda code is trying to do in this area of the code? The rest of the stack dump is the IMAP processor and netty stuff for IMAP. Exception occurs when IMAP client tries to check mail. Any ideas? java.lang.IncompatibleClassChangeError: vtable stub at com.github.steveash.guavate.Guavate.lambda$toImmutableMap$8(Guavate.java:351)
Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)
Hi Benoit, Thanks for the info. I added my custom matcher and mailet jars to pom.xml and ran the mvn dependency tree command from the link. The dependency-tree run completed successfully. The only two references to my custom jars were warnings saying I should use a variable instead of hardcoding the path to the jars. I also repeatedly got the message: Verbose not supported since maven-dependency-plugin 3.0. But basically, the dependency tree didn't appear to find any problems. I understand what you said about Guavate bridging Guava and java8. But Guava is part of Guice, correct? Since my configuration is spring/jpa, should I even be going into code that talks to Guice? Could that be the problem? Jerry On 2/5/2020 1:23 AM, Tellier Benoit wrote: Hi Jerry, Looking at https://mvnrepository.com/artifact/com.github.steveash.guavate/guavate Guavate is a tiny library to help bridge the gap between gauva and java8 while the Guava team figures out what they are going to release We use it as a java utility for that very purpose. Now about your issue let me suggest the following debug procedure: - From master james-server repository - Add the dependency to your custom mailet jars in server/app/pom.xml - Follow https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html in server/app Once you identify the source of conflicts, fixing the error should be easy. Benoit On 05/02/2020 12:43, Jerry Malcolm wrote: I need to bump this post back to the top of the queue. I'm totally blocked on this one. This is only occurring on my customized installation (at least I haven't gotten it to occur in the out-of-the-box installation). But knowing that really hasn't helped me any. I know I'm doing something to cause this. But I really just need a brief explanation as to what this code (in the stack trace below) is doing just to give me a fighting chance. I just need somebody to tell me what Guavate's lambda code is trying to do here and what data it's working on. What class is expected? The error description on google says a class didn't get compiled with the latest code. But that makes no sense. I built James and my mailets from scratch with the latest master. I found a Guavate.java on the web. But the line numbers didn't match up. Is something getting serialize, possibly with one class and deserialized with another class? Just let me know what is supposed to happen in these lines of code, and I'll see where I can take it from there. BTW... it appears that Guavate is part of Guice. I'm still using spring/jpa... no Guice... Is some configuration I have trying to kick me into some Guice code? Thanks as always. Jerry On 2/1/2020 12:18 AM, Jerry Malcolm wrote: I have created a completely separate instance of James from my current running production circa last October for a different client. It was built from the latest master on github as of yesterday. After publishing it to my EC2 instance, I started adding my my specific conf files and jar files. I was able to get it to receive mail and show it in Tomcat. It can also send mail. Then after about 30 minutes, it starts failing on IMAP calls. I have created totally new instances in new folders from the build three different times, and get the same behavior. Works fine for a while. Then decides to fail. After it fails, nothing I do can make it recover. I've never seen anything like these exceptions. It's failing on a 'github.steveash.guavate' class (???). Not sure where that came from. Really curious why it works for a while and then starts failing. TW, I have a few custom mailets and several jar files to support them. But none of the jars have class names anywhere close to the ones in the stack dump. So I don't think there is a jar conflict. Just need a bit of info about what a "vtable stub" is and what Guavate's lambda code is trying to do in this area of the code? The rest of the stack dump is the IMAP processor and netty stuff for IMAP. Exception occurs when IMAP client tries to check mail. Any ideas? java.lang.IncompatibleClassChangeError: vtable stub at com.github.steveash.guavate.Guavate.lambda$toImmutableMap$8(Guavate.java:351) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For
Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)
Hi Jerry, Looking at https://mvnrepository.com/artifact/com.github.steveash.guavate/guavate Guavate is a tiny library to help bridge the gap between gauva and java8 while the Guava team figures out what they are going to release We use it as a java utility for that very purpose. Now about your issue let me suggest the following debug procedure: - From master james-server repository - Add the dependency to your custom mailet jars in server/app/pom.xml - Follow https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html in server/app Once you identify the source of conflicts, fixing the error should be easy. Benoit On 05/02/2020 12:43, Jerry Malcolm wrote: > I need to bump this post back to the top of the queue. I'm totally > blocked on this one. > > This is only occurring on my customized installation (at least I haven't > gotten it to occur in the out-of-the-box installation). But knowing that > really hasn't helped me any. I know I'm doing something to cause this. > But I really just need a brief explanation as to what this code (in the > stack trace below) is doing just to give me a fighting chance. I just > need somebody to tell me what Guavate's lambda code is trying to do here > and what data it's working on. What class is expected? The error > description on google says a class didn't get compiled with the latest > code. But that makes no sense. I built James and my mailets from > scratch with the latest master. I found a Guavate.java on the web. But > the line numbers didn't match up. Is something getting serialize, > possibly with one class and deserialized with another class? Just let > me know what is supposed to happen in these lines of code, and I'll see > where I can take it from there. > > BTW... it appears that Guavate is part of Guice. I'm still using > spring/jpa... no Guice... Is some configuration I have trying to kick me > into some Guice code? > > Thanks as always. > > Jerry > > > On 2/1/2020 12:18 AM, Jerry Malcolm wrote: >> I have created a completely separate instance of James from my current >> running production circa last October for a different client. It was >> built from the latest master on github as of yesterday. After >> publishing it to my EC2 instance, I started adding my my specific conf >> files and jar files. I was able to get it to receive mail and show it >> in Tomcat. It can also send mail. Then after about 30 minutes, it >> starts failing on IMAP calls. I have created totally new instances in >> new folders from the build three different times, and get the same >> behavior. Works fine for a while. Then decides to fail. After it >> fails, nothing I do can make it recover. I've never seen anything >> like these exceptions. It's failing on a 'github.steveash.guavate' >> class (???). Not sure where that came from. Really curious why it >> works for a while and then starts failing. TW, I have a few custom >> mailets and several jar files to support them. But none of the jars >> have class names anywhere close to the ones in the stack dump. So I >> don't think there is a jar conflict. Just need a bit of info about >> what a "vtable stub" is and what Guavate's lambda code is trying to do >> in this area of the code? The rest of the stack dump is the IMAP >> processor and netty stuff for IMAP. Exception occurs when IMAP client >> tries to check mail. Any ideas? >> >> java.lang.IncompatibleClassChangeError: vtable stub >> at >> com.github.steveash.guavate.Guavate.lambda$toImmutableMap$8(Guavate.java:351) >> >> at >> java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) >> at java.util.Iterator.forEachRemaining(Iterator.java:116) >> at >> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) >> >> at >> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) >> at >> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) >> >> at >> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) >> >> at >> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) >> >> >> - >> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >> For additional commands, e-mail: server-dev-h...@james.apache.org >> > > - > To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org > For additional commands, e-mail: server-dev-h...@james.apache.org > - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)
I need to bump this post back to the top of the queue. I'm totally blocked on this one. This is only occurring on my customized installation (at least I haven't gotten it to occur in the out-of-the-box installation). But knowing that really hasn't helped me any. I know I'm doing something to cause this. But I really just need a brief explanation as to what this code (in the stack trace below) is doing just to give me a fighting chance. I just need somebody to tell me what Guavate's lambda code is trying to do here and what data it's working on. What class is expected? The error description on google says a class didn't get compiled with the latest code. But that makes no sense. I built James and my mailets from scratch with the latest master. I found a Guavate.java on the web. But the line numbers didn't match up. Is something getting serialize, possibly with one class and deserialized with another class? Just let me know what is supposed to happen in these lines of code, and I'll see where I can take it from there. BTW... it appears that Guavate is part of Guice. I'm still using spring/jpa... no Guice... Is some configuration I have trying to kick me into some Guice code? Thanks as always. Jerry On 2/1/2020 12:18 AM, Jerry Malcolm wrote: I have created a completely separate instance of James from my current running production circa last October for a different client. It was built from the latest master on github as of yesterday. After publishing it to my EC2 instance, I started adding my my specific conf files and jar files. I was able to get it to receive mail and show it in Tomcat. It can also send mail. Then after about 30 minutes, it starts failing on IMAP calls. I have created totally new instances in new folders from the build three different times, and get the same behavior. Works fine for a while. Then decides to fail. After it fails, nothing I do can make it recover. I've never seen anything like these exceptions. It's failing on a 'github.steveash.guavate' class (???). Not sure where that came from. Really curious why it works for a while and then starts failing. TW, I have a few custom mailets and several jar files to support them. But none of the jars have class names anywhere close to the ones in the stack dump. So I don't think there is a jar conflict. Just need a bit of info about what a "vtable stub" is and what Guavate's lambda code is trying to do in this area of the code? The rest of the stack dump is the IMAP processor and netty stuff for IMAP. Exception occurs when IMAP client tries to check mail. Any ideas? java.lang.IncompatibleClassChangeError: vtable stub at com.github.steveash.guavate.Guavate.lambda$toImmutableMap$8(Guavate.java:351) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org