Nullpointer Exception occurs when creating jcloud template for a given image

322 views
Skip to first unread message

Amani Soysa

unread,
Apr 24, 2013, 10:05:45 AM4/24/13
to jcl...@googlegroups.com
Hi

I am getting the following exception when creating jcloud template on top of devstack (folsom).


TID: [0] [CC] [2013-04-24 15:24:30,267] ERROR {org.apache.cassandra.service.AbstractCassandraDaemon} -  Exception in thread Thread[pool-57-thread-1,5,main] {org.apache.cassandra.service.AbstractCassandraDaemon}
org.wso2.carbon.stratos.cloud.controller.exception.CloudControllerException: java.lang.NullPointerException: id
    at org.wso2.carbon.stratos.cloud.controller.deployers.CartridgeDeployer.handleException(CartridgeDeployer.java:155)
    at org.wso2.carbon.stratos.cloud.controller.deployers.CartridgeDeployer.access$000(CartridgeDeployer.java:44)
    at org.wso2.carbon.stratos.cloud.controller.deployers.CartridgeDeployer$JcloudsObjectBuilder.run(CartridgeDeployer.java:183)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NullPointerException: id
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2256)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3980)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3984)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4868)
    at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:206)
    at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:202)
    at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:63)
    at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:42)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3579)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2372)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2335)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2250)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3980)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3984)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4868)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
    at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:48)
    at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:36)
    at org.jclouds.util.Suppliers2$SupplierComposition.get(Suppliers2.java:107)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3579)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2372)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2335)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2250)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3980)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3984)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4868)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
    at org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.listImages(NovaComputeServiceAdapter.java:159)
    at org.jclouds.compute.config.ComputeServiceAdapterContextModule$2.get(ComputeServiceAdapterContextModule.java:128)
    at org.jclouds.compute.config.ComputeServiceAdapterContextModule$2.get(ComputeServiceAdapterContextModule.java:124)
    at org.jclouds.collect.TransformingSetSupplier.get(TransformingSetSupplier.java:50)
    at org.jclouds.collect.TransformingSetSupplier.get(TransformingSetSupplier.java:36)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3579)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2372)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2335)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2250)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3980)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3984)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4868)
    at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
    at org.jclouds.compute.domain.internal.TemplateBuilderImpl.getImages(TemplateBuilderImpl.java:816)
    at org.jclouds.compute.domain.internal.TemplateBuilderImpl.build(TemplateBuilderImpl.java:653)
    at org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas.buildTemplate(OpenstackNovaIaas.java:99)
    at org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas.buildComputeServiceAndTemplate(OpenstackNovaIaas.java:67)
    at org.wso2.carbon.stratos.cloud.controller.deployers.CartridgeDeployer$JcloudsObjectBuilder.run(CartridgeDeployer.java:178)
    ... 3 more
Caused by: java.lang.NullPointerException: id
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:208)
    at org.jclouds.openstack.keystone.v2_0.domain.Role.<init>(Role.java:132)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.newInstance(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:219)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:198)
    at org.jclouds.json.internal.IgnoreNullSetTypeAdapterFactory$1.read(IgnoreNullSetTypeAdapterFactory.java:69)
    at org.jclouds.json.internal.IgnoreNullSetTypeAdapterFactory$1.read(IgnoreNullSetTypeAdapterFactory.java:56)
    at com.google.gson.TypeAdapter$1.read(TypeAdapter.java:199)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:245)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:181)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:245)
    at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:181)
    at com.google.gson.Gson.fromJson(Gson.java:791)
    at org.jclouds.http.functions.ParseFirstJsonValueNamed.apply(ParseFirstJsonValueNamed.java:81)
    at org.jclouds.http.functions.ParseFirstJsonValueNamed.apply(ParseFirstJsonValueNamed.java:48)
    at com.google.common.util.concurrent.Futures$3.apply(Futures.java:380)
    at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:522)
    ... 3 more


 Please note that I have given my image id as nova/61886474-123d-4c4a-8f68-9a5606bf76c0 and instanceType as nova/1. And I have uploaded this image in devstack sucessfully and was able to launch the instances. Also note the devstack default region is "RegionOne" and I have not changed it.

Appreciate if someone can give some tips on isolating this issue inorder to fix it.


Thanks & Regards

Amani

Everett Toews

unread,
Apr 24, 2013, 10:12:49 AM4/24/13
to <jclouds@googlegroups.com>
Can you please put a code sample causing the problem in a gist [1] or pastie [2] and send us the link?

Thanks,
Everett


--
You received this message because you are subscribed to the Google Groups "jclouds" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jclouds+u...@googlegroups.com.
To post to this group, send email to jcl...@googlegroups.com.
Visit this group at http://groups.google.com/group/jclouds?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Amani Soysa

unread,
Apr 24, 2013, 10:53:38 AM4/24/13
to jcl...@googlegroups.com
Hi Everett,

Thanks for looking at this issue and for  the quick response .. I have attached my code block [1] herewith. When I invoke build method in org.jclouds.compute.domain.internal.TemplateBuilderImpl (TemplateBuilderImpl.java:653)


Thanks,
Amani
--
Amani Soysa
Senior Software Engineer
Mobile: +94772325528
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware

Everett Toews

unread,
Apr 24, 2013, 4:53:18 PM4/24/13
to <jclouds@googlegroups.com>
Looking at your stack trace I see that the root cause of the NPE is that your Role id is null.

In the latest code the id field is Nullable [1] so I imagine you're at least a few versions back.

You'll also want to check that a role id is being returned when you authenticate to OpenStack. Have a look at Example 3.6 in [2].

Hope this helps,
Everett

Amani Soysa

unread,
Apr 25, 2013, 5:27:50 AM4/25/13
to jcl...@googlegroups.com
Hi Everett,

Thanks for your response. Yes we are using an old version of jclouds (1.5.0-beta.5).  We found a workaround for this issue by making role id Nullable because we cannot afford to upgrade jclouds at the moment.

Thanks again for looking into this issue

Regards
Reply all
Reply to author
Forward
0 new messages