<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Setting service property using CM Java API throws null pointer exception in Archives of Support Questions (Read Only)</title>
    <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Setting-service-property-using-CM-Java-API-throws-null/m-p/42713#M34225</link>
    <description>&lt;P&gt;I'm trying to set a property using the CM Java API but it's throwing a null pointer exception in CM. Do I need to set additional properties? Here's what I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;clusterName = &lt;SPAN&gt;"cluster1"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;service: &lt;SPAN&gt;String &lt;/SPAN&gt;= &lt;SPAN&gt;"OOZIE"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiServiceConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiServiceConfig&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiConfig(&lt;SPAN&gt;"oozie_database_type"&lt;/SPAN&gt;, &lt;SPAN&gt;"mysql"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;apiServiceConfig.add(apiConfig)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiService = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiService&lt;BR /&gt;apiService.setConfig(apiServiceConfig)&lt;BR /&gt;apiService.setType(service)&lt;BR /&gt;apiService.setName(service)&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;clusterRef = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiClusterRef()&lt;BR /&gt;clusterRef.setClusterName(clusterName)&lt;BR /&gt;apiService.setClusterRef(clusterRef)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;apiConnection.&lt;SPAN&gt;clustersResource&lt;BR /&gt;&lt;/SPAN&gt;  .getServicesResource(clusterName)&lt;BR /&gt;  .updateService(service, apiService)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's not giving me an error message on the client side, the clouder api debug logs on CM show this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;UT /api/v12/clusters/cluster1/services/OOZIE&lt;BR /&gt;Encoding: UTF-8&lt;BR /&gt;Authentication: admin [AUTH_AUDITS, AUTH_BDR_ADMIN, AUTH_DASHBOARDS, AUTH_DECOMMISSION_HOST, AUTH_DECOMMISSION_OTHER, AUTH_FULL_ADMIN_CONFIG, AUTH_KEY_ADMIN, AUTH_KMS_POWER_OPS, AUTH_MAINTENANCE_MODE, AUTH_NAVIGATOR, AUTH_POWER_OPS, AUTH_REDACTION, AUTH_SERVICE_CONFIG, AUTH_USERS_CONFIG, ROLE_ADMIN, ROLE_USER]&lt;BR /&gt;Headers:&lt;BR /&gt;Accept=[application/json]&lt;BR /&gt;Authorization=[Basic YWRtaW46YWRtaW4=]&lt;BR /&gt;Cache-Control=[no-cache]&lt;BR /&gt;connection=[keep-alive]&lt;BR /&gt;Content-Length=[205]&lt;BR /&gt;content-type=[application/json]&lt;BR /&gt;Host=[172.19.0.5:7180]&lt;BR /&gt;Pragma=[no-cache]&lt;BR /&gt;User-Agent=[Apache CXF 2.7.7]&lt;BR /&gt;Body:&lt;BR /&gt;{&lt;BR /&gt;"name" : "OOZIE",&lt;BR /&gt;"type" : "OOZIE",&lt;BR /&gt;"clusterRef" : {&lt;BR /&gt;"clusterName" : "cluster1"&lt;BR /&gt;},&lt;BR /&gt;"config" : {&lt;BR /&gt;"items" : [ {&lt;BR /&gt;"name" : "oozie_database_type",&lt;BR /&gt;"value" : "mysql"&lt;BR /&gt;} ]&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;2016-07-08 15:28:50,879 DEBUG 275074659@scm-web-15:com.cloudera.api.dao.impl.ManagerDaoBase: Skipping retry for method (last exception): public abstract com.cloudera.api.model.ApiService com.cloudera.api.dao.ServiceManagerDao.updateService(java.lang.String,java.lang.String,com.cloudera.api.model.ApiService); total attempts: 1, total time elapsed: 3, last exception: java.lang.NullPointerException&lt;BR /&gt;2016-07-08 15:28:50,880 WARN 275074659@scm-web-15:com.cloudera.api.ApiExceptionMapper: Unexpected exception.&lt;BR /&gt;java.lang.NullPointerException&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,881 DEBUG 275074659@scm-web-15:com.cloudera.api.LoggingOutInterceptor: API response:&lt;BR /&gt;---------- id: 3090&lt;BR /&gt;Response code: 500&lt;BR /&gt;Content-Type: application/json&lt;BR /&gt;Headers:&lt;BR /&gt;Date=[Fri, 08 Jul 2016 15:28:50 GMT]&lt;BR /&gt;Body:&lt;BR /&gt;{ }&lt;/P&gt;</description>
    <pubDate>Fri, 16 Sep 2022 10:29:02 GMT</pubDate>
    <dc:creator>afoerster</dc:creator>
    <dc:date>2022-09-16T10:29:02Z</dc:date>
    <item>
      <title>Setting service property using CM Java API throws null pointer exception</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Setting-service-property-using-CM-Java-API-throws-null/m-p/42713#M34225</link>
      <description>&lt;P&gt;I'm trying to set a property using the CM Java API but it's throwing a null pointer exception in CM. Do I need to set additional properties? Here's what I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;clusterName = &lt;SPAN&gt;"cluster1"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;service: &lt;SPAN&gt;String &lt;/SPAN&gt;= &lt;SPAN&gt;"OOZIE"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiServiceConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiServiceConfig&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiConfig(&lt;SPAN&gt;"oozie_database_type"&lt;/SPAN&gt;, &lt;SPAN&gt;"mysql"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;apiServiceConfig.add(apiConfig)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiService = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiService&lt;BR /&gt;apiService.setConfig(apiServiceConfig)&lt;BR /&gt;apiService.setType(service)&lt;BR /&gt;apiService.setName(service)&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;clusterRef = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiClusterRef()&lt;BR /&gt;clusterRef.setClusterName(clusterName)&lt;BR /&gt;apiService.setClusterRef(clusterRef)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;apiConnection.&lt;SPAN&gt;clustersResource&lt;BR /&gt;&lt;/SPAN&gt;  .getServicesResource(clusterName)&lt;BR /&gt;  .updateService(service, apiService)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's not giving me an error message on the client side, the clouder api debug logs on CM show this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;UT /api/v12/clusters/cluster1/services/OOZIE&lt;BR /&gt;Encoding: UTF-8&lt;BR /&gt;Authentication: admin [AUTH_AUDITS, AUTH_BDR_ADMIN, AUTH_DASHBOARDS, AUTH_DECOMMISSION_HOST, AUTH_DECOMMISSION_OTHER, AUTH_FULL_ADMIN_CONFIG, AUTH_KEY_ADMIN, AUTH_KMS_POWER_OPS, AUTH_MAINTENANCE_MODE, AUTH_NAVIGATOR, AUTH_POWER_OPS, AUTH_REDACTION, AUTH_SERVICE_CONFIG, AUTH_USERS_CONFIG, ROLE_ADMIN, ROLE_USER]&lt;BR /&gt;Headers:&lt;BR /&gt;Accept=[application/json]&lt;BR /&gt;Authorization=[Basic YWRtaW46YWRtaW4=]&lt;BR /&gt;Cache-Control=[no-cache]&lt;BR /&gt;connection=[keep-alive]&lt;BR /&gt;Content-Length=[205]&lt;BR /&gt;content-type=[application/json]&lt;BR /&gt;Host=[172.19.0.5:7180]&lt;BR /&gt;Pragma=[no-cache]&lt;BR /&gt;User-Agent=[Apache CXF 2.7.7]&lt;BR /&gt;Body:&lt;BR /&gt;{&lt;BR /&gt;"name" : "OOZIE",&lt;BR /&gt;"type" : "OOZIE",&lt;BR /&gt;"clusterRef" : {&lt;BR /&gt;"clusterName" : "cluster1"&lt;BR /&gt;},&lt;BR /&gt;"config" : {&lt;BR /&gt;"items" : [ {&lt;BR /&gt;"name" : "oozie_database_type",&lt;BR /&gt;"value" : "mysql"&lt;BR /&gt;} ]&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;2016-07-08 15:28:50,879 DEBUG 275074659@scm-web-15:com.cloudera.api.dao.impl.ManagerDaoBase: Skipping retry for method (last exception): public abstract com.cloudera.api.model.ApiService com.cloudera.api.dao.ServiceManagerDao.updateService(java.lang.String,java.lang.String,com.cloudera.api.model.ApiService); total attempts: 1, total time elapsed: 3, last exception: java.lang.NullPointerException&lt;BR /&gt;2016-07-08 15:28:50,880 WARN 275074659@scm-web-15:com.cloudera.api.ApiExceptionMapper: Unexpected exception.&lt;BR /&gt;java.lang.NullPointerException&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,880 DEBUG 275074659@scm-web-15:com.cloudera.api.ApiInvoker: API Error 500 [/api/v12/clusters/cluster1/services/OOZIE]: ApiErrorMessage{null}&lt;BR /&gt;2016-07-08 15:28:50,881 DEBUG 275074659@scm-web-15:com.cloudera.api.LoggingOutInterceptor: API response:&lt;BR /&gt;---------- id: 3090&lt;BR /&gt;Response code: 500&lt;BR /&gt;Content-Type: application/json&lt;BR /&gt;Headers:&lt;BR /&gt;Date=[Fri, 08 Jul 2016 15:28:50 GMT]&lt;BR /&gt;Body:&lt;BR /&gt;{ }&lt;/P&gt;</description>
      <pubDate>Fri, 16 Sep 2022 10:29:02 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Setting-service-property-using-CM-Java-API-throws-null/m-p/42713#M34225</guid>
      <dc:creator>afoerster</dc:creator>
      <dc:date>2022-09-16T10:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: Setting service property using CM Java API throws null pointer exception</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Setting-service-property-using-CM-Java-API-throws-null/m-p/42720#M34226</link>
      <description>&lt;P&gt;This sample works, I needed to change the role config not the service config. I'm using autoAssignRoles so I didn't know the role names and need to query them. Since oozie only has one role I can just grab the first one that matches.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;clusterName = &lt;SPAN&gt;"cluster1"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;serviceName = &lt;SPAN&gt;"OOZIE"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiServiceConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiServiceConfig&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;apiConfig = &lt;SPAN&gt;new &lt;/SPAN&gt;ApiConfig(&lt;SPAN&gt;"oozie_database_type"&lt;/SPAN&gt;, &lt;SPAN&gt;"postgresql"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;apiServiceConfig.add(apiConfig)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;rolesResource: RolesResourceV11 = apiConnection.&lt;SPAN&gt;clustersResource&lt;/SPAN&gt;.getServicesResource(clusterName).getRolesResource(serviceName)&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;roles: ApiRoleList = rolesResource.readRoles(DataView.&lt;SPAN&gt;FULL&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;val &lt;/SPAN&gt;oozieRole: &lt;SPAN&gt;String &lt;/SPAN&gt;= roles.asScala.filter(x =&amp;gt; x.getName.startsWith(serviceName)).head.getName&lt;BR /&gt;&lt;BR /&gt;apiConnection.&lt;SPAN&gt;clustersResource&lt;BR /&gt;&lt;/SPAN&gt;  .getServicesResource(clusterName)&lt;BR /&gt;  .getRolesResource(serviceName).updateRoleConfig(oozieRole, &lt;SPAN&gt;"use mysql db"&lt;/SPAN&gt;, apiServiceConfig)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Jul 2016 18:24:14 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Setting-service-property-using-CM-Java-API-throws-null/m-p/42720#M34226</guid>
      <dc:creator>afoerster</dc:creator>
      <dc:date>2016-07-08T18:24:14Z</dc:date>
    </item>
  </channel>
</rss>

