[
https://issues.apache.org/jira/browse/IGNITE-2649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15384139#comment-15384139
]
Amit Shah commented on IGNITE-2649:
-----------------------------------
I'm facing an issue where I get the exception mentioned in the bug description
but the failure appears only in case when ignite instance is not defined in the
context where it is used & a CacheFileLocalStore is used. In the below code the
issue appears when ignite instance is defined as a instance variable. Would it
appear when @IgniteInstanceResource is used? Can someone confirm if this is the
same issue being track by this jira and explain the root cause behind this
issue?
The code I am referring to is
{code:java}
public class LocalStoreTest implements Serializable {
private Ignite ignite = IgniteConfigUtil.initializeIgniteInClientMode();
public void testLocalStoreGridGainExample() {
CacheConfiguration<Integer, Integer> ccfg = new CacheConfiguration<>();
ccfg.setName("Cache 1");
ccfg.setCacheStoreFactory(
new Factory<CacheStore<Integer, Integer>>() {
@SuppressWarnings("unchecked")
@Override
public CacheStore<Integer, Integer> create() {
return new CacheFileLocalStore();
}
});
// try (Ignite ignite = IgniteConfigUtil.initializeIgniteInClientMode())
{
IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(ccfg);
System.out.println("Putting values to cache...");
for (int i = 0; i < 20; i++)
cache.put(i, i);
// }
}
}
{code}
> Ignition.localIgnite() unreliable under Gateways and cause wrong components
> deserialization.
> --------------------------------------------------------------------------------------------
>
> Key: IGNITE-2649
> URL: https://issues.apache.org/jira/browse/IGNITE-2649
> Project: Ignite
> Issue Type: Bug
> Components: general
> Affects Versions: 1.5.0.final
> Reporter: Vladimir Ershov
> Assignee: Vladimir Ozerov
> Priority: Critical
> Labels: 1.6, community
> Fix For: 1.7
>
> Original Estimate: 8h
> Remaining Estimate: 8h
>
> We can get something like this:
> {noformat}
> java.lang.IllegalArgumentException: This method should be accessed under
> org.apache.ignite.thread.IgniteThread
> at org.apache.ignite.internal.IgnitionEx.localIgnite(IgnitionEx.java:1252)
> at org.apache.ignite.Ignition.localIgnite(Ignition.java:531)
> at org.project.MyPojo.readResolve(MyPojo.java:123)
> at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:746)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1448)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadObject(BinaryUtils.java:1564)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.readObject(BinaryReaderExImpl.java:1086)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:827)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read(BinaryFieldAccessor.java:643)
> at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:734)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1448)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadObject(BinaryUtils.java:1564)
> at
> org.apache.ignite.internal.binary.BinaryUtils.deserializeOrUnmarshal(BinaryUtils.java:1908)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadMap(BinaryUtils.java:1892)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1595)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1644)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read(BinaryFieldAccessor.java:643)
> at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:734)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1448)
> at
> org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:537)
> at
> org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:117)
> at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:257)
> at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:148)
> at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:135)
> at
> org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapBinaryIfNeeded(GridCacheContext.java:1757)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture.java:629)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.localGet(GridPartitionedSingleGetFuture.java:421)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.mapKeyToNode(GridPartitionedSingleGetFuture.java:337)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.map(GridPartitionedSingleGetFuture.java:204)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.init(GridPartitionedSingleGetFuture.java:196)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAsync(GridDhtColocatedCache.java:266)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4774)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4758)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1391)
> at
> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.get(IgniteCacheProxy.java:865)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)