Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portable EntryProcessor is not being called on portable objects [3.6.3] #8365

Closed
dharamthakkar opened this issue Jun 12, 2016 · 1 comment

Comments

Projects
None yet
2 participants
@dharamthakkar
Copy link

commented Jun 12, 2016

portabledemo - sample.zip

Hi Team,

Server : QueryCollectionsPortableDemo.java
Client : HzClient.java

I have created multiple PortableFactories as I have multiple class definitions.
[EPPortableFactory - EntryProcessor Portable Factory]
[PersonPortableFactory - Person objects portable factory]

I was trying out various alternatives to query nested collections. But when trying EntryProcessor using,
Map<Integer, Object> r = map.executeOnEntries(new PersonEntryProcessor("left-leg","LL"));

it gives me 0 size result. Even I tried to return all PersonPortable, but still it gives 0 result set

Why I am behind portable?
Well, join operations are not supported by hazelcast. So I am firing join queries on database and creating PersonPortable with nested list

PersonPortable {
List(Tuple) rows;
}

Tuple {
name;
value;
}

Thanks & Regards,
Dharam Thacker

@jerrinot jerrinot added this to the 3.7 milestone Jun 12, 2016

@jerrinot

This comment has been minimized.

Copy link
Contributor

commented Jun 12, 2016

Hi @dharamthakkar,

there is a bug in your PersonEntryProcessor class. You are missing assignments. This is your code:

@Override
public void readPortable(PortableReader reader) throws IOException {
    reader.readUTF("name");
    reader.readUTF("value");
    System.out.println("Read portable was called");
}

but it should be:

@Override
public void readPortable(PortableReader reader) throws IOException {
    name = reader.readUTF("name");
    value = reader.readUTF("value");
    System.out.println("Read portable was called");
}

I'm closing this issue as everything is working as designed on Hazelcast side. Feel free to open a new one when you encounter another issue.

@jerrinot jerrinot closed this Jun 12, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.