Re: java.lang.IncompatibleClassChangeError: vtable stub (Guavate?)

2020-02-05 Thread Jerry Malcolm

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?)

2020-02-05 Thread Tellier Benoit
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?)

2020-02-05 Thread Jerry Malcolm

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?)

2020-02-04 Thread Tellier Benoit
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?)

2020-02-04 Thread Jerry Malcolm
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