Patrick Li created SQOOP-3244:
---------------------------------

             Summary: Raise Exception "JSONObject cannot be cast to JSONArray" 
during parsing connector information
                 Key: SQOOP-3244
                 URL: https://issues.apache.org/jira/browse/SQOOP-3244
             Project: Sqoop
          Issue Type: Bug
          Components: sqoop2-api
    Affects Versions: 1.99.7
         Environment: Java client API is used; JRE8; MacOS
            Reporter: Patrick Li
            Priority: Blocker


The code is as below: 
Class: package org.apache.sqoop.json.ConnectorBean
Method: private MConnector restoreConnector(Object obj)
code with bug: line in red
cause: The object with name "link-config" is a JSON object, not a JSON array. 
It should be:
ConfigInputSerialization.restoreConfigList((JSONArray)object.get("link-config").get("configs")
!attachment-name.jpg|thumbnail!
 private MConnector restoreConnector(Object obj) {
        JSONObject object = (JSONObject)obj;
        long connectorId = ((Long)object.get("id")).longValue();
        String uniqueName = (String)object.get("name");
        String className = (String)object.get("class");
        String version = (String)object.get("version");
        List<MConfig> linkConfigs = 
{color:red}ConfigInputSerialization.restoreConfigList((JSONArray)object.get("link-config"));{color}
        JSONObject jobConfigJson = (JSONObject)object.get("job-config");
        JSONArray fromJobConfigJson = 
(JSONArray)jobConfigJson.get(Direction.FROM.name());
        JSONArray toJobConfigJson = 
(JSONArray)jobConfigJson.get(Direction.TO.name());
        MFromConfig fromConfig = null;
        MToConfig toConfig = null;
        List toJobConfig;
        if (fromJobConfigJson != null) {
            toJobConfig = 
ConfigInputSerialization.restoreConfigList(fromJobConfigJson);
            fromConfig = new MFromConfig(toJobConfig);
        }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to