You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "BK Lau (JIRA)" <ji...@apache.org> on 2014/12/03 20:33:12 UTC
[jira] [Commented] (JCLOUDS-783) Docker remote API.inspect() call
results in java.lang.IllegalStateException: Expected STRING but was
BEGIN_ARRAY
[ https://issues.apache.org/jira/browse/JCLOUDS-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14233402#comment-14233402 ]
BK Lau commented on JCLOUDS-783:
--------------------------------
Andrea:
Snapshot 2.0.0 from pull 113 failed.
To repro is easy:
1. Do a docker image pull for https://registry.hub.docker.com/_/nginx/
Just do a pull "docker pull nginx"
2. Run the container:
"docker run --name nginx1 -d nginx"
3. Run the code below(I used Eclipse 4.0 Luna/JDK 1.8 and pull 113 is the **ONLY Project** I have in the workspace, no other third-party libs/jars)
public class DockerTest1 {
private final Set<Module> modules = ImmutableSet.<Module> of(new ExecutorServiceModule(sameThreadExecutor(),
sameThreadExecutor()));
protected String provider;
public DockerTest1() {
provider = "docker";
}
public DockerApi api(URL url) {
return ContextBuilder.newBuilder(provider)
.credentials("clientid", "apikey")
.endpoint(url.toString())
// .modules(modules)
//.overrides(setupProperties())
.buildApi(DockerApi.class);
}
protected Properties setupProperties() {
return new Properties();
}
public static void main(String[] args) throws Exception{
URL url = new URL("http://myhost:2375");
DockerTest1 test = new DockerTest1();
DockerApi docker_api=test.api(url);
ContainerApi cont_api=docker_api.getContainerApi();
Container c=cont_api.inspectContainer("nginx1");
System.out.println(c.toString());
}
}
4. The error is :
=========================================================
Dec 03, 2014 2:21:17 PM org.jclouds.logging.jdk.JDKLogger logError
SEVERE: Error parsing input
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was NULL at line 1 column 1607 path $.NetworkSettings.Ports.
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:190)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:272)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:184)
at com.google.gson.Gson.fromJson(Gson.java:805)
at com.google.gson.Gson.fromJson(Gson.java:770)
at com.google.gson.Gson.fromJson(Gson.java:719)
at org.jclouds.json.internal.GsonWrapper.fromJson(GsonWrapper.java:42)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:82)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:76)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:62)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:42)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy48.inspectContainer(Unknown Source)
at org.jclouds.docker.internal.DockerTest1.main(DockerTest1.java:80)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was NULL at line 1 column 1607 path $.NetworkSettings.Ports.
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:351)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.readAndBuild(NullFilteringTypeAdapterFactories.java:88)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.read(NullFilteringTypeAdapterFactories.java:82)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.read(NullFilteringTypeAdapterFactories.java:61)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$MapTypeAdapter.read(NullFilteringTypeAdapterFactories.java:311)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$MapTypeAdapter.read(NullFilteringTypeAdapterFactories.java:281)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:272)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:184)
... 17 more
Exception in thread "main" java.lang.IllegalStateException: Expected BEGIN_ARRAY but was NULL at line 1 column 1607 path $.NetworkSettings.Ports.
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:351)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.readAndBuild(NullFilteringTypeAdapterFactories.java:88)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.read(NullFilteringTypeAdapterFactories.java:82)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$IterableTypeAdapter.read(NullFilteringTypeAdapterFactories.java:61)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$MapTypeAdapter.read(NullFilteringTypeAdapterFactories.java:311)
at org.jclouds.json.internal.NullFilteringTypeAdapterFactories$MapTypeAdapter.read(NullFilteringTypeAdapterFactories.java:281)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:272)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:184)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:272)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:184)
at com.google.gson.Gson.fromJson(Gson.java:805)
at com.google.gson.Gson.fromJson(Gson.java:770)
at com.google.gson.Gson.fromJson(Gson.java:719)
at org.jclouds.json.internal.GsonWrapper.fromJson(GsonWrapper.java:42)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:82)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:76)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:62)
at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:42)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy48.inspectContainer(Unknown Source)
at org.jclouds.docker.internal.DockerTest1.main(DockerTest1.java:80)
> Docker remote API.inspect() call results in java.lang.IllegalStateException: Expected STRING but was BEGIN_ARRAY
> ----------------------------------------------------------------------------------------------------------------
>
> Key: JCLOUDS-783
> URL: https://issues.apache.org/jira/browse/JCLOUDS-783
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-labs
> Affects Versions: 1.8.0
> Environment: Docker 1.3.1, ubuntu 14.04
> Reporter: BK Lau
> Assignee: Andrea Turli
> Labels: docker, inspect
> Fix For: 2.0.0
>
>
> I run NGINX from https://registry.hub.docker.com/_/nginx/ and tried doing
> an inspect on a running container based on above nginx using Docker version 1.3.1 on ubuntu 14.04, I got consistently JSON parsing errors:
> java.lang.IllegalStateException: Expected STRING but was BEGIN_ARRAY
> I attached sample error logs and Docker CLI inspect
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)