Re: Error on Ignite.close(): class java.io.ObjectInputStream$Caches$1 cannot be cast to class java.util.Map

2022-08-29 Thread Pavel Tupitsyn
Roman, good catch - I've cherry-picked IGNITE-17481
 to 2.14

On Mon, Aug 29, 2022 at 9:47 AM Roman Puchkovskiy <
roman.puchkovs...@gmail.com> wrote:

> Looks like this has been fixed in
> https://issues.apache.org/jira/browse/IGNITE-17481
> Not sure if this is going to land in 2.14. Probably it should, the fix
> is tiny, but the issue can be very annoying on recent Java versions.
>
> пн, 15 авг. 2022 г. в 11:45, Maksim Timonin :
> >
> > Hi Rafael,
> >
> > Getting `java.lang.ClassCastException` looks like a bug. I'm not sure
> but it's required to have different cleaning for jdk8 and jdk11. Thanks for
> finding that!
> >
> > > Do you have a guideline "howto contribute" if this is wanted?
> >
> > Please check this guide:
> https://github.com/apache/ignite/blob/master/CONTRIBUTING.md
> >
> > Feel free to ask any questions.
> >
> >
> >
> > On Tue, Aug 9, 2022 at 4:20 PM Rafael Troilo 
> wrote:
> >>
> >> Hi,
> >>
> >> @Paolo de Dios, thank you for creating an issue for this
> >> - https://issues.apache.org/jira/browse/IGNITE-17481
> >>
> >> I attached a patch for this issue.
> >>
> >> Do you have a guideline "howto contribute" if this is wanted?
> >>
> >> Best,
> >> Rafael
> >>
> >>
> >>
> >> On 8/5/22 16:18, Rafael Troilo wrote:
> >> > Hi,
> >> >
> >> > in case it wasn't reported before.
> >> >
> >> > On Ignite.close we got an Error:
> >> >
> >> >
> >> > ```
> >> > SEVERE: Failed to stop component (ignoring): GridManagerAdapter
> [enabled=true, name=o.a.i.i.managers.deployment.GridDeploymentManager]
> >> > java.lang.ClassCastException:
> (java.io.ObjectInputStream$Caches$1 and java.util.Map are in module
> java.base of loader 'bootstrap')
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCache(GridDeploymentStoreAdapter.java:151)
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCaches(GridDeploymentStoreAdapter.java:120)
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.undeploy(GridDeploymentLocalStore.java:565)
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.stop(GridDeploymentLocalStore.java:101)
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentManager.storesStop(GridDeploymentManager.java:630)
> >> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentManager.stop(GridDeploymentManager.java:137)
> >> >  at
> org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1928)
> >> >  at
> org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1806)
> >> >  at
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2382)
> >> >  at
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2205)
> >> >  at
> org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:350)
> >> >  at org.apache.ignite.Ignition.stop(Ignition.java:230)
> >> >  at
> org.apache.ignite.internal.IgniteKernal.close(IgniteKernal.java:2776)
> >> > ```
> >> >
> >> > ver. 2.13.0#20220420-sha1:551f6ece
> >> > OS: Linux 4.15.0-189-generic amd64
> >> > VM information: OpenJDK Runtime Environment
> 11.0.16+8-post-Ubuntu-0ubuntu118.04 Ubuntu OpenJDK 64-Bit Server VM
> 11.0.16+8-post-Ubuntu-0ubuntu118.04
> >> >
> >> > The reason for this Exception is an access to an field of
> ObjectOutputStream$Caches.subclassAudits which used to be of type
> java.util.Map but it changed to type java.lang.ClassValue!
> >> >
> >> > ```
> >> >
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter::clearSerializationCaches
> >> >
> >> >
> >> > clearSerializationCache(Class.forName("java.io.ObjectInputStream$Caches"),
> "subclassAudits");
> >> >
> >> > clearSerializationCache(Class.forName("java.io.ObjectOutputStream$Caches"),
> "subclassAudits");
> >> >
> >> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"),
> "localDescs");
> >> >
> >> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"),
> "reflectors");
> >> > ```
> >> >
> >> > Is it safe to ignore this Exception? Any workarounds?
> >> >
> >> > Thank you,
> >> > Best,
> >> > Rafael
> >> >
> >> >
> >> >
> >>
> >> --
> >> Rafael Troilo
> >> HeiGIT gGmbH
> >> Heidelberg Institute for Geoinformation Technology at Heidelberg
> University
> >>
> >> https://heigit.org | rafael.tro...@heigit.org | phone +49-6221-533 484
> >>
> >> Postal address: Schloss-Wolfsbrunnenweg 33 | 69118 Heidelberg | Germany
> >> Offices: Berliner Str. 45 | 69120 Heidelberg | Germany
> >>
> >> Amtsgericht Mannheim | HRB 733765
> >> Managing Directors: Prof. Dr. Alexander Zipf | Dr. Gesa Schönberger
>


Re: Error on Ignite.close(): class java.io.ObjectInputStream$Caches$1 cannot be cast to class java.util.Map

2022-08-28 Thread Roman Puchkovskiy
Looks like this has been fixed in
https://issues.apache.org/jira/browse/IGNITE-17481
Not sure if this is going to land in 2.14. Probably it should, the fix
is tiny, but the issue can be very annoying on recent Java versions.

пн, 15 авг. 2022 г. в 11:45, Maksim Timonin :
>
> Hi Rafael,
>
> Getting `java.lang.ClassCastException` looks like a bug. I'm not sure but 
> it's required to have different cleaning for jdk8 and jdk11. Thanks for 
> finding that!
>
> > Do you have a guideline "howto contribute" if this is wanted?
>
> Please check this guide: 
> https://github.com/apache/ignite/blob/master/CONTRIBUTING.md
>
> Feel free to ask any questions.
>
>
>
> On Tue, Aug 9, 2022 at 4:20 PM Rafael Troilo  wrote:
>>
>> Hi,
>>
>> @Paolo de Dios, thank you for creating an issue for this
>> - https://issues.apache.org/jira/browse/IGNITE-17481
>>
>> I attached a patch for this issue.
>>
>> Do you have a guideline "howto contribute" if this is wanted?
>>
>> Best,
>> Rafael
>>
>>
>>
>> On 8/5/22 16:18, Rafael Troilo wrote:
>> > Hi,
>> >
>> > in case it wasn't reported before.
>> >
>> > On Ignite.close we got an Error:
>> >
>> >
>> > ```
>> > SEVERE: Failed to stop component (ignoring): GridManagerAdapter 
>> > [enabled=true, name=o.a.i.i.managers.deployment.GridDeploymentManager]
>> > java.lang.ClassCastException:  (java.io.ObjectInputStream$Caches$1 and 
>> > java.util.Map are in module java.base of loader 'bootstrap')
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCache(GridDeploymentStoreAdapter.java:151)
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCaches(GridDeploymentStoreAdapter.java:120)
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.undeploy(GridDeploymentLocalStore.java:565)
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.stop(GridDeploymentLocalStore.java:101)
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentManager.storesStop(GridDeploymentManager.java:630)
>> >  at 
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentManager.stop(GridDeploymentManager.java:137)
>> >  at 
>> > org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1928)
>> >  at 
>> > org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1806)
>> >  at 
>> > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2382)
>> >  at 
>> > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2205)
>> >  at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:350)
>> >  at org.apache.ignite.Ignition.stop(Ignition.java:230)
>> >  at 
>> > org.apache.ignite.internal.IgniteKernal.close(IgniteKernal.java:2776)
>> > ```
>> >
>> > ver. 2.13.0#20220420-sha1:551f6ece
>> > OS: Linux 4.15.0-189-generic amd64
>> > VM information: OpenJDK Runtime Environment 
>> > 11.0.16+8-post-Ubuntu-0ubuntu118.04 Ubuntu OpenJDK 64-Bit Server VM 
>> > 11.0.16+8-post-Ubuntu-0ubuntu118.04
>> >
>> > The reason for this Exception is an access to an field of 
>> > ObjectOutputStream$Caches.subclassAudits which used to be of type 
>> > java.util.Map but it changed to type java.lang.ClassValue!
>> >
>> > ```
>> > org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter::clearSerializationCaches
>> >
>> >
>> > clearSerializationCache(Class.forName("java.io.ObjectInputStream$Caches"), 
>> > "subclassAudits");
>> >
>> > clearSerializationCache(Class.forName("java.io.ObjectOutputStream$Caches"),
>> >  "subclassAudits");
>> >
>> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"), 
>> > "localDescs");
>> >
>> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"), 
>> > "reflectors");
>> > ```
>> >
>> > Is it safe to ignore this Exception? Any workarounds?
>> >
>> > Thank you,
>> > Best,
>> > Rafael
>> >
>> >
>> >
>>
>> --
>> Rafael Troilo
>> HeiGIT gGmbH
>> Heidelberg Institute for Geoinformation Technology at Heidelberg University
>>
>> https://heigit.org | rafael.tro...@heigit.org | phone +49-6221-533 484
>>
>> Postal address: Schloss-Wolfsbrunnenweg 33 | 69118 Heidelberg | Germany
>> Offices: Berliner Str. 45 | 69120 Heidelberg | Germany
>>
>> Amtsgericht Mannheim | HRB 733765
>> Managing Directors: Prof. Dr. Alexander Zipf | Dr. Gesa Schönberger


Re: Error on Ignite.close(): class java.io.ObjectInputStream$Caches$1 cannot be cast to class java.util.Map

2022-08-15 Thread Maksim Timonin
Hi Rafael,

Getting `java.lang.ClassCastException` looks like a bug. I'm not sure but
it's required to have different cleaning for jdk8 and jdk11. Thanks for
finding that!

> Do you have a guideline "howto contribute" if this is wanted?

Please check this guide:
https://github.com/apache/ignite/blob/master/CONTRIBUTING.md

Feel free to ask any questions.



On Tue, Aug 9, 2022 at 4:20 PM Rafael Troilo 
wrote:

> Hi,
>
> @Paolo de Dios, thank you for creating an issue for this
> - https://issues.apache.org/jira/browse/IGNITE-17481
>
> I attached a patch for this issue.
>
> Do you have a guideline "howto contribute" if this is wanted?
>
> Best,
> Rafael
>
>
>
> On 8/5/22 16:18, Rafael Troilo wrote:
> > Hi,
> >
> > in case it wasn't reported before.
> >
> > On Ignite.close we got an Error:
> >
> >
> > ```
> > SEVERE: Failed to stop component (ignoring): GridManagerAdapter
> [enabled=true, name=o.a.i.i.managers.deployment.GridDeploymentManager]
> > java.lang.ClassCastException:  (java.io.ObjectInputStream$Caches$1
> and java.util.Map are in module java.base of loader 'bootstrap')
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCache(GridDeploymentStoreAdapter.java:151)
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCaches(GridDeploymentStoreAdapter.java:120)
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.undeploy(GridDeploymentLocalStore.java:565)
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.stop(GridDeploymentLocalStore.java:101)
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentManager.storesStop(GridDeploymentManager.java:630)
> >  at
> org.apache.ignite.internal.managers.deployment.GridDeploymentManager.stop(GridDeploymentManager.java:137)
> >  at
> org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1928)
> >  at
> org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1806)
> >  at
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2382)
> >  at
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2205)
> >  at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:350)
> >  at org.apache.ignite.Ignition.stop(Ignition.java:230)
> >  at
> org.apache.ignite.internal.IgniteKernal.close(IgniteKernal.java:2776)
> > ```
> >
> > ver. 2.13.0#20220420-sha1:551f6ece
> > OS: Linux 4.15.0-189-generic amd64
> > VM information: OpenJDK Runtime Environment
> 11.0.16+8-post-Ubuntu-0ubuntu118.04 Ubuntu OpenJDK 64-Bit Server VM
> 11.0.16+8-post-Ubuntu-0ubuntu118.04
> >
> > The reason for this Exception is an access to an field of
> ObjectOutputStream$Caches.subclassAudits which used to be of type
> java.util.Map but it changed to type java.lang.ClassValue!
> >
> > ```
> >
> org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter::clearSerializationCaches
> >
> >
> > clearSerializationCache(Class.forName("java.io.ObjectInputStream$Caches"),
> "subclassAudits");
> >
> > clearSerializationCache(Class.forName("java.io.ObjectOutputStream$Caches"),
> "subclassAudits");
> >
> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"),
> "localDescs");
> >
> > clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"),
> "reflectors");
> > ```
> >
> > Is it safe to ignore this Exception? Any workarounds?
> >
> > Thank you,
> > Best,
> > Rafael
> >
> >
> >
>
> --
> Rafael Troilo
> HeiGIT gGmbH
> Heidelberg Institute for Geoinformation Technology at Heidelberg University
>
> https://heigit.org | rafael.tro...@heigit.org | phone +49-6221-533 484
>
> Postal address: Schloss-Wolfsbrunnenweg 33 | 69118 Heidelberg | Germany
> Offices: Berliner Str. 45 | 69120 Heidelberg | Germany
>
> Amtsgericht Mannheim | HRB 733765
> Managing Directors: Prof. Dr. Alexander Zipf | Dr. Gesa Schönberger


Re: Error on Ignite.close(): class java.io.ObjectInputStream$Caches$1 cannot be cast to class java.util.Map

2022-08-09 Thread Rafael Troilo

Hi,

@Paolo de Dios, thank you for creating an issue for this
- https://issues.apache.org/jira/browse/IGNITE-17481

I attached a patch for this issue.

Do you have a guideline "howto contribute" if this is wanted?

Best,
Rafael



On 8/5/22 16:18, Rafael Troilo wrote:

Hi,

in case it wasn't reported before.

On Ignite.close we got an Error:


```
SEVERE: Failed to stop component (ignoring): GridManagerAdapter [enabled=true, 
name=o.a.i.i.managers.deployment.GridDeploymentManager]
java.lang.ClassCastException:  (java.io.ObjectInputStream$Caches$1 and 
java.util.Map are in module java.base of loader 'bootstrap')
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCache(GridDeploymentStoreAdapter.java:151)
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter.clearSerializationCaches(GridDeploymentStoreAdapter.java:120)
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.undeploy(GridDeploymentLocalStore.java:565)
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.stop(GridDeploymentLocalStore.java:101)
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentManager.storesStop(GridDeploymentManager.java:630)
 at 
org.apache.ignite.internal.managers.deployment.GridDeploymentManager.stop(GridDeploymentManager.java:137)
 at org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1928)
 at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1806)
 at 
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2382)
 at 
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2205)
 at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:350)
 at org.apache.ignite.Ignition.stop(Ignition.java:230)
 at org.apache.ignite.internal.IgniteKernal.close(IgniteKernal.java:2776)
```

ver. 2.13.0#20220420-sha1:551f6ece
OS: Linux 4.15.0-189-generic amd64
VM information: OpenJDK Runtime Environment 11.0.16+8-post-Ubuntu-0ubuntu118.04 
Ubuntu OpenJDK 64-Bit Server VM 11.0.16+8-post-Ubuntu-0ubuntu118.04

The reason for this Exception is an access to an field of 
ObjectOutputStream$Caches.subclassAudits which used to be of type java.util.Map 
but it changed to type java.lang.ClassValue!

```
org.apache.ignite.internal.managers.deployment.GridDeploymentStoreAdapter::clearSerializationCaches

   clearSerializationCache(Class.forName("java.io.ObjectInputStream$Caches"), 
"subclassAudits");
   clearSerializationCache(Class.forName("java.io.ObjectOutputStream$Caches"), 
"subclassAudits");
   clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"), 
"localDescs");
   clearSerializationCache(Class.forName("java.io.ObjectStreamClass$Caches"), 
"reflectors");
```

Is it safe to ignore this Exception? Any workarounds?

Thank you,
Best,
Rafael





--
Rafael Troilo
HeiGIT gGmbH
Heidelberg Institute for Geoinformation Technology at Heidelberg University

https://heigit.org | rafael.tro...@heigit.org | phone +49-6221-533 484

Postal address: Schloss-Wolfsbrunnenweg 33 | 69118 Heidelberg | Germany
Offices: Berliner Str. 45 | 69120 Heidelberg | Germany

Amtsgericht Mannheim | HRB 733765
Managing Directors: Prof. Dr. Alexander Zipf | Dr. Gesa Schönbergerdiff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentStoreAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentStoreAdapter.java
index fcbc801a443..29d9088758b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentStoreAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentStoreAdapter.java
@@ -134,6 +134,10 @@ abstract class GridDeploymentStoreAdapter implements GridDeploymentStore {
 if (log.isDebugEnabled())
 log.debug("Field can't be accessed: " + e.getMessage());
 }
+catch (ClassCastException e) {
+if (log.isDebugEnabled())
+log.debug("Field can't be cased to Map: " + e.getMessage());
+}
 }
 
 /**