[erlang-questions] Receiving identical messages from Erlang and from JInterface

Richard Carlsson <>
Thu Jan 4 20:18:25 CET 2007


Hubert Matthews wrote:
> Richard Carlsson wrote:
>> Try using different variable names in the second receive, e.g. {P1,X1}.
> 
> Doing that works fine.  What I'm trying to understand is why seemingly
> identical terms sent from an Erlang client match but when sent from Java
> don't match.  If they were incorrectly sent by Java then why are they
> displayed correctly in the process' message queue?

There seems to be a difference in the bit representation, which is for
some reason not visible in the displayed form <4999.1.0>.

> P == P1 gives false, as does P =:= P1.
> 
> ()60> term_to_binary(P).
> <<131,103,100,0,11,106,110,111,100,101,64,106,117,109,98,111,0,0,0,1,0,0,0,0,3>>
> 
> ()61> term_to_binary(P1).
> <<131,103,100,0,11,106,110,111,100,101,64,106,117,109,98,111,0,0,0,1,0,0,0,0,1>>
> 
> The last byte is different: 3 then 1.
> 
> When sent from Erlang I get something completely different:
> 
> ()68> term_to_binary(PE).
> <<131,103,100,0,24,119,105,98,98,108,101,64,106,117,109,98,111,46,111,120,121,119,97,114,101,46,110,101,116,...>>

I expect that there is someone out there on the list with more knowledge
about pid encodings and Jinterface who can see what the problem is.

	/Richard



More information about the erlang-questions mailing list