You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Neeru Gupta (JIRA)" <ji...@apache.org> on 2016/04/28 23:29:12 UTC

[jira] [Commented] (ATLAS-723) JSON deserialization regression

    [ https://issues.apache.org/jira/browse/ATLAS-723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15263051#comment-15263051 ] 

Neeru Gupta commented on ATLAS-723:
-----------------------------------

org.apache.atlas.typesystem.types.ValueConversionException: Cannot convert value 'org.apache.atlas.typesystem.Struct@71ae6bd6' to datatype PII
	at org.apache.atlas.typesystem.types.TypedStructHandler.convert(TypedStructHandler.java:57)
	at org.apache.atlas.typesystem.types.TraitType.convert(TraitType.java:58)
	at org.apache.atlas.typesystem.types.ClassType.createInstanceWithTraits(ClassType.java:184)
	at org.apache.atlas.typesystem.types.ClassType.convert(ClassType.java:124)
	at org.apache.atlas.services.DefaultMetadataService.deserializeClassInstances(DefaultMetadataService.java:339)
	at org.apache.atlas.services.DefaultMetadataService.createEntities(DefaultMetadataService.java:313)
	at org.apache.atlas.service.DefaultMetadataServiceTest.createInstance(DefaultMetadataServiceTest.java:200)

> JSON deserialization regression
> -------------------------------
>
>                 Key: ATLAS-723
>                 URL: https://issues.apache.org/jira/browse/ATLAS-723
>             Project: Atlas
>          Issue Type: Bug
>    Affects Versions: trunk
>            Reporter: Jeffrey Hagelberg
>            Assignee: Neeru Gupta
>            Priority: Blocker
>
> Some json that could be deserialized prior to the implementation of soft delete can no longer be deserialized.  This seems to be related to the addition of the "state" field in the id.  Furthermore, it seems to be restricted to cases where the object has an array reference.
> Here's an example of a JSON object whose deserialization now fails:
> {noformat}
>  {
>         "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
>         "id": {
>             "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>             "id": "6765f7c6-cc11-4575-8c13-8bab9b3d86a2",
>             "version": 0,
>             "typeName": "LoadProcess"
>         },
>         "typeName": "LoadProcess",
>         "values": {
>             "inputTables": [{
>                     "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>                     "id": "bacfa996-e88e-4d7e-9630-68c9829b10b4",
>                     "version": 0,
>                     "typeName": "Table"
>                 }, {
>                     "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>                     "id": "6da06805-3f56-446f-8831-672a65ac2199",
>                     "version": 0,
>                     "typeName": "Table"
>                 }
>             ],
>             "outputTable": {
>                 "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>                 "id": "d5c3d6d0-aa10-44c1-b05d-ed9400d2a5ac",
>                 "version": 0,
>                 "typeName": "Table"
>             },
>             "name": "loadSalesDaily"
>         },
>         "traitNames": [
>             "ETL"
>         ],
>         "traits": {
>             "ETL": {
>                 "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
>                 "typeName": "ETL",
>                 "values": {
>                 }
>             }
>         }
>     }
> {noformat}
> (Note that this depends on the referenced Table objects having been previously saved into Atlas)
> I spent some time debugging this today, it seems to be a regression in the InstanceSerialization class.  It seems to be related to InstanceJavaConversion.state and InstanceJavaConversion.convertId



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)