Not Comparable Objects: BigInteger 350930 and Integer 350930

I’ve done a join to 5 tables. All works fine in validation. No errors at all. If I use a specific value in the where clause in the 4 SQL Selects, it’ll run fine. If I give it a parameter (instead of a hardcoded value). I get the error “Not Comparable Objects: BigInteger 350930 and Integer 350930”. They’re exactly the same field type in the DB. If I replace $PropertyId with 350930, it’ll work. It’s getting the values, as they’re shown in the error. I’ve tried casting them both to the same time (Integer, Float, and String), and then I get the error that they’re not ascending, if I change to ascending, I get an error saying they’re not descending, etc etc.

Does this happen during validation, or only during execution? If only during validation, try holding the Shift key as you click the validate icon, or click the Retry link if that is shown. This will avoid using cached data, which can sometimes lead to errors like you’re seeing because of the way that data is serialized to the cache during one validation and then deserialized from the cache on a subsequent validation. Values of types such as Integer will become normalized to other types like BigInteger in the process of serialization/deserialization.

I realize you said “All works fine in validation”, but I just want to be sure I’m understanding you correctly. I’ve only seen the “Not Comparable Objects” error during validation when it was using cached data from a previous validation.

Also, do you have a stack trace from the Pipeline Statistics window? If so, please post it here using a Preformatted Text block (</>).

Hi,

It works in validation if I give it a static value. So, if I have the expression, $propertyid == 123456, it’ll work fine in validation, but then I get the error if I try to execute it. If I have $propertyid == propId, it’ll fail both in validation and execution with the same error (which is the same as the other error message).

Reason:
Not comparable objects: BigInteger 350930 and Integer 350930
Hide Details...
Join[5fd9a86c47060ece477be9b6_087b0009-f8f6-4091-a8c5-3223a624649d -- 15187eed-c7f4-4a27-941c-19d928dcf354]
com.snaplogic.snap.api.SnapDataException: Failed to perform join operation
	at com.snaplogic.snaps.transform.MultiJoin.execute(MultiJoin.java:216)
	at com.snaplogic.cc.snap.common.SnapRunnableImpl.executeSnap(SnapRunnableImpl.java:770)
	at com.snaplogic.cc.snap.common.SnapRunnableImpl.execute(SnapRunnableImpl.java:552)
	at com.snaplogic.cc.snap.common.SnapRunnableImpl.doRun(SnapRunnableImpl.java:836)
	at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:402)
	at com.snaplogic.cc.snap.common.SnapRunn    ableImpl.call(SnapRunnableImpl.java:116)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Reason: Not comparable objects: BigInteger 350930 and Integer 350930
Resolution: Please address the reported issue.

Error Fingerprint[0] = efp:com.snaplogic.snaps.transform.Ix2j0m3w

Hi @chrisbodman,

First, you need to parse fields to be the same data type(before be passed in Join) also you need to set “Sorted streams” in Join to “Unsorted” or put Sort snap on each Join input and set “Sorted streams” to the way you sorted in Sort snap(ascending or descending).

Hope this will solve your problem. :slight_smile:

Regards.
Viktor Nedanovski

2 Likes

Sorry, I’m not understanding this expression and what it’s referring to. Can you show the context where you’re using it?