You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by wychoi <wy...@bistel.co.kr> on 2016/01/06 03:33:05 UTC

CacheEntryEventSerializableFilter in ignite1.5

HI

We're to examine ignite1.5.
We had an error occurs while using the Continuous Query.
Piece of code like this:
It was applied to the CacheEntryEventSerializableFilter.setRemoteFilter of
ContinuousQuery.


query.setRemoteFilter(new CacheEntryEventSerializableFilter<AffinityKey,
XObject>() {
    @Override 
    public boolean evaluate(CacheEntryEvent<? extends AffinityKey, ? extends
XObject> e) {
        return false;
    }
});

However, the error was generated as follows.

java.lang.ClassCastException:com.company.XObject$2 cannot be cast to
org.apache.ignite.cache.CacheEntryEventSerializableFilter
	at
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.readExternal(CacheContinuousQueryHandler.java:1109)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
	at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
	at
org.apache.ignite.internal.processors.continuous.StartRequestData.readExternal(StartRequestData.java:260)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
	at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
	at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
	at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
	at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
	at
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:78)
	at
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
	at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4731)
	at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4592)
	at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2276)
	at
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:5784)
	at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2161)
	at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

What should I do to solve this problem ?
Did I use the (AffinityKey,Object) as a parameter to
CacheEntryEventSerializableFilter?



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by wychoi <wy...@bistel.co.kr>.
I found a problem that runs in another custom class loader
It seems that passed through the query.setRemoteFilter
Thanks for your interest



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382p2488.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by vkulichenko <va...@gmail.com>.
wychoi,

XObject$2 is a name of some anonymous class that was declared inside XObject
class. You don't have it in the snippet you provided, but the message
clearly shows that the instance of such a class is created. This makes me
think that you have some issues with the classpath. Can you double-check
this?

-Val



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382p2403.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by wychoi <wy...@bistel.co.kr>.
All nodes have the same class path
XObject and classes also are all the same version
But it is the same error continues to occur,

XObject snippet 

public class XObject implements Serializable  {
    
    @QuerySqlField
	private int part;
    
    @QuerySqlField
	private String applicationName;
    
    @QuerySqlField
	private String className;
    
    @QuerySqlField(index = true)
	private Long grobalKey = 1L;
    
    @QuerySqlField
	private String message = null;
    
    @QuerySqlField
	private UUID uuid = null;
	
	public int getPart() {
		return part;
	}

	public void setPart(int part) {
		this.part = part;
	}

	public String getApplicationName() {
		return applicationName;
	}

	public void setApplicationName(String applicationName) {
		this.applicationName = applicationName;
	}

	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public Long getGrobalKey() {
		return grobalKey;
	}
	
	public void setGrobalKey(Long grobalKey) {
		this.grobalKey = grobalKey;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public UUID getUuid() {
		return uuid;
	}

	public void setUuid(UUID uuid) {
		this.uuid = uuid;
	}

}




--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382p2402.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by wychoi <wy...@bistel.co.kr>.
Hi vkulichenko

XObject is the original name MessageWrap

While modifying the class names and package names,
 XObject was misspelled in the XObject$2





--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382p2407.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by Prem Sahoo <pr...@gmail.com>.
Here the object what u are using is wrong 

Sent from my iPhone

> On Jan 5, 2016, at 9:33 PM, wychoi <wy...@bistel.co.kr> wrote:
> 
> HI
> 
> We're to examine ignite1.5.
> We had an error occurs while using the Continuous Query.
> Piece of code like this:
> It was applied to the CacheEntryEventSerializableFilter.setRemoteFilter of
> ContinuousQuery.
> 
> 
> query.setRemoteFilter(new CacheEntryEventSerializableFilter<AffinityKey,
> XObject>() {
>    @Override 
>    public boolean evaluate(CacheEntryEvent<? extends AffinityKey, ? extends
> XObject> e) {
>        return false;
>    }
> });
> 
> However, the error was generated as follows.
> 
> java.lang.ClassCastException:com.company.XObject$2 cannot be cast to
> org.apache.ignite.cache.CacheEntryEventSerializableFilter
>    at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.readExternal(CacheContinuousQueryHandler.java:1109)
>    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
>    at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>    at
> org.apache.ignite.internal.processors.continuous.StartRequestData.readExternal(StartRequestData.java:260)
>    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
>    at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>    at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>    at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>    at
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
>    at
> org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:78)
>    at
> org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
>    at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4731)
>    at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4592)
>    at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2276)
>    at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:5784)
>    at
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2161)
>    at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
> 
> What should I do to solve this problem ?
> Did I use the (AffinityKey,Object) as a parameter to
> CacheEntryEventSerializableFilter?
> 
> 
> 
> --
> View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: CacheEntryEventSerializableFilter in ignite1.5

Posted by vkulichenko <va...@gmail.com>.
Hi wychoi,

Most likely you have different classpath on different nodes. Can you make
sure that the latest versions of XObject and all other classes you have are
deployed on all nodes?

Please let us know if it helps.

-Val



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryEventSerializableFilter-in-ignite1-5-tp2382p2391.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.