FraBle / python-sutime

Python wrapper for Stanford CoreNLP's SUTime
GNU General Public License v3.0
153 stars 43 forks source link

Upgrade to jpype1 lib causing crashing issue with SUTime #42

Open speechwrecko opened 4 years ago

speechwrecko commented 4 years ago

During a recent deploy the jpype1 lib was automatically updated and our systems integrated with SUTime started to crash with the following exception:

TypeError json in loads error the JSON object must be str, bytes or bytearray, not 'java.lang.String'.

The issue occurs in line 159 of the sutime.py file return json.loads(self._sutime.annotate(input_str, reference_date))

            call.
    """
    if not jpype.isThreadAttachedToJVM():
        jpype.attachThreadToJVM()
    if reference_date:
        return json.loads(self._sutime.annotate(input_str, reference_date))
    return json.loads(self._sutime.annotate(input_str))
speechwrecko commented 4 years ago

Note we mitigated the issue by pinning an older version of the lib

Thrameos commented 4 years ago

This library appears to pretty far out of date. The solution is to insert "str()" as Java returns a Java string not a Python one. Apparently json library is not duck typing to get the contents of the Java string.