Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1185

A Network rangeIPv4 may be null

    XMLWordPrintableJSON

Details

    Description

      When creating an instance using the default network I get an NPE because the rangeIPv4 for the default network is null. It seems this is a valid response from the API now (it may not have been in the past, all legacy default networks had an IP range).

      Relevant log snippets:

      Wire log of response:

      11:13:46.682 DEBUG [main]  jclouds.wire - << "{[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "kind": "compute#network",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "id": "2880581387445067991",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "creationTimestamp": "2016-09-30T05:44:40.283-07:00",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "name": "default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "description": "Default network for the project",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "selfLink": "https://www.googleapis.com/compute/v1/projects/project-name/global/networks/default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "autoCreateSubnetworks": true,[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " "subnetworks": [[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "  "https://www.googleapis.com/compute/v1/projects/project-name/regions/asia-east1/subnetworks/default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "  "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "  "https://www.googleapis.com/compute/v1/projects/project-name/regions/europe-west1/subnetworks/default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "  "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-west1/subnetworks/default",[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "  "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-east1/subnetworks/default"[\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << " ][\n]"
      11:13:46.682 DEBUG [main]  jclouds.wire - << "}[\n]"
      

      NPE:

      11:13:47.589 ERROR [main]  org.jclouds.http.functions.ParseJson - Error parsing input: Null rangeIPv4
      java.lang.NullPointerException: Null rangeIPv4
      	at org.jclouds.googlecomputeengine.domain.AutoValue_Network.<init>(AutoValue_Network.java:45) ~[google-compute-engine-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.googlecomputeengine.domain.Network.create(Network.java:58) ~[google-compute-engine-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_73]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_73]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_73]
      	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_73]
      	at com.google.common.reflect.Invokable$MethodInvokable.invokeInternal(Invokable.java:197) ~[guava-19.0.jar:na]
      	at com.google.common.reflect.Invokable.invoke(Invokable.java:102) ~[guava-19.0.jar:na]
      	at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.newInstance(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:224) ~[jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeIntoParameterizedConstructor.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:204) ~[jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at com.google.gson.Gson.fromJson(Gson.java:810) ~[gson-2.3.1.jar:na]
      	at com.google.gson.Gson.fromJson(Gson.java:775) ~[gson-2.3.1.jar:na]
      	at com.google.gson.Gson.fromJson(Gson.java:724) ~[gson-2.3.1.jar:na]
      	at org.jclouds.json.internal.GsonWrapper.fromJson(GsonWrapper.java:42) ~[jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:83) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:77) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:62) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:42) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44) [jclouds-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
      	at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117) 
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            hendrens Stuart Hendren
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: