Forum Discussion

chrisbodman's avatar
chrisbodman
New Contributor II
5 years ago

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.

5 Replies

  • viktor_n's avatar
    viktor_n
    Contributor II

    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. 🙂

    Regards.
    Viktor Nedanovski

  • 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.

    • ptaylor's avatar
      ptaylor
      Employee

      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 (</>).

      • chrisbodman's avatar
        chrisbodman
        New Contributor II

        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