[
https://issues.apache.org/jira/browse/SQOOP-3244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Patrick Li updated SQOOP-3244:
------------------------------
Description:
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")
!sqoop_client_api.png!
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);
}
was:
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);
}
> 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
> Labels: easyfix
> Attachments: sqoop_client_api.png
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> 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")
> !sqoop_client_api.png!
> 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)