Date   

Re: `api_z1/0' is not running after update to CF v231

sridhar vennela
 

Hi Wayne,

Somehow VM is not able to join consul server. You can try below steps.

ps -ef | grep consul

kill consul-serverpid

monit restart <consul-job>

Thank you,
Sridhar


Re: `api_z1/0' is not running after update to CF v231

Wayne Ha <wayne.h.ha@...>
 

Sridhar,

Thanks for your response. I found the VM is listening to port 8500:

root(a)c6822dcb-fb02-4858-ae5d-3ab45d593896:/var/vcap/sys/log# netstat -anp |
grep LISTEN
tcp 0 0 127.0.0.1:8400 0.0.0.0:*
LISTEN 18162/consul
tcp 0 0 127.0.0.1:8500 0.0.0.0:*
LISTEN 18162/consul
tcp 0 0 127.0.0.1:53 0.0.0.0:*
LISTEN 18162/consul
tcp 0 0 127.0.0.1:2822 0.0.0.0:*
LISTEN 72/monit
tcp 0 0 0.0.0.0:22 0.0.0.0:*
LISTEN 31/sshd
tcp 0 0 10.244.0.138:8301 0.0.0.0:*
LISTEN 18162/consul

If I run "monit stop all" then it only listens to the following:

root(a)c6822dcb-fb02-4858-ae5d-3ab45d593896:/var/vcap/sys/log# netstat -anp |
grep LISTEN
tcp 0 0 127.0.0.1:2822 0.0.0.0:*
LISTEN 72/monit
tcp 0 0 0.0.0.0:22 0.0.0.0:*
LISTEN 31/sshd

Note that 10.244.0.138 is the IP of this VM.

Thanks,

On Sat, Mar 5, 2016 at 12:58 AM, sridhar vennela <sridhar.vennela(a)gmail.com>
wrote:

Hi Wayne,

Can you please verify port 8500 listening? Maybe output of netstat -anp
will help.

{"timestamp":"1457136496.397377968","source":"confab","message":"confab.agent-client.verify-joined.members.request.failed","log_level":2,"data":{"error":"Get
http://127.0.0.1:8500/v1/agent/members: dial tcp 127.0.0.1:8500:
getsockopt: connection refused","wan":false}}

Thank you,
Sridhar


Re: User defined variable "key" validation doesn't happen at cf set-env phase

Nicholas Calugar
 

Hi Ponraj,

I don't think the CC can make any determination regarding the validity of
environment variables as the CC doesn't (and shouldn't) know how each
buildpack will use these environment variables.

Thanks,

Nick

On Thu, Mar 3, 2016 at 9:22 AM Ponraj E <ponraj.e(a)gmail.com> wrote:

Hi CF Colleagues,

I see various PaaS providers provide the UI for entering the User provided
variables' key and value, but they dont seem to validate the "key" at the
save ["set-env"] phase, the validation happens only at
the restage phase. This is also because CF does the same. Is there any
reason that CC doesnt validate keys of user defined environment varibles at
the cf set-env phase ?

Examples:
1.cf set-env spring-music !@#$$%% "foobar" succeeds, but the restage
fails throwing /bin/bash: line 6: export: `!@#49%%=foobar': not a valid
identifier
2.cf set-env spring-music "!@#$$%%" "foobar" succeeds, the restage also
succeeds but the same as above is thrown as message here.

P.S: The above variables are used for only testing purposes and these
would give errros at the runtime usage in the application is implicit here.


Regards,
Ponraj


Re: How to get the IP addresses of the instances of the same application

Casey West
 

Indeed, I've had great success using the `jq` command-line tool to parse
JSON along with `cf app app-name --guid` and `cf curl`. Like so:

$ cf curl /v2/apps/$(cf app app-name --guid)/stats | jq '.[].stats.host'
"10.10.112.75"
"10.10.116.51"
"10.10.113.72"
"10.10.116.53"
"10.10.113.69"

More on jq if needed: https://github.com/stedolan/jq

— Casey

On Sat, Mar 5, 2016 at 8:15 PM DHR <lists(a)dhrapson.com> wrote:

The router_status endpoint of the router node gives a nice point-in-time
snapshot of the IPs / ports in is for each app URL, in json, andis
continually kept up to date by the CF platform.

On 4 Mar 2016, at 22:31, Jason Sherron <jsherron(a)pivotal.io> wrote:

I'm also very interested to hear about what you might need to do with
direct container-to-container communication. We've started an effort to
enable it at the network layer, and as Dan gets at, service discovery is a
thorny area, and we'd like to hear your feedback.

On Fri, Mar 4, 2016 at 9:07 AM, Daniel Mikusa <dmikusa(a)pivotal.io> wrote:

On Thu, Mar 3, 2016 at 10:32 PM, Malmee Weerasinghe <malmee(a)wso2.com>
wrote:

Hi,
When I push an application to cloud foundry, "cf scale myApp -i 5" will
increase the number of instances of my application to 5. I want to get the
ip addresses of these instances. Is there any way to get the ip addresses
and ports of the 5 instances of my application? Is there any API?
Look at the environment variables in the container, things starting with
VCAP_ or CF_ provide you with details about the container, app and bound
services. It sounds like you're looking for CF_INSTANCE_ADDR in particular.

That said, what are you planning to do with this information? You don't
really want to try and talk directly to specific app instances. Those
instance can come and go and the IP's can change. If you're talking
directly then you have the tedious task of tracking all that information.
If instead you talk through the URL mapped to your app then you never have
to worry about things changing.

It's probably also worth mentioning that some CF installations will
prohibit direct container to container communication.

Dan


I am running cloud foundry with diego in bosh-lite. In documents I have
seen that garden API gives container information, but how to call the
garden API? I highly appreciate your responses regarding this issue.

Thank you.


Re: Org and Space Quota management

Padmashree B
 

Hi,

Any inputs on the current behavior of the APIs would be of great help, thanks !

Regards,
Padma

This e-mail may contain trade secrets or privileged, undisclosed, or otherwise confidential information. If you have received this e-mail in error, you are hereby notified that any review, copying, or distribution of it is strictly prohibited. Please inform us immediately and destroy the original transmittal. Thank you for your cooperation.


Re: CF env reveals passwords and secrets ...

Marco Voelz
 

Dear Padma, Mathias, all,

BOSH has just included the functionality to replace all properties with the string "<redacted>" already *on the server side*.
Maybe that is an option the Cloud Controller could follow here?

Note that we're currently discussing what default behavior should be and if there should be an option to turn redacting on or off, respectively. [1]

Warm regards
Marco

[1] https://github.com/cloudfoundry/bosh/issues/1158

On 05/03/16 10:51, "Padmashree B" <padmashree.b(a)sap.com> wrote:

It will be interesting if there are any solutions to handle this from CF.
As an alternative solution, every client tools should build some logic to hide the secure variables. However, it will not be straight forward for the client tools to identify those variables to be handled in a secure way since at the end it is just a key-value pair.
This is also applicable for user-defined variables which is usually defined by application developers and there is no way to mark certain variables as secure.

Thanks,
Padma


Re: CF env reveals passwords and secrets ...

Padmashree B
 

It will be interesting if there are any solutions to handle this from CF.
As an alternative solution, every client tools should build some logic to hide the secure variables. However, it will not be straight forward for the client tools to identify those variables to be handled in a secure way since at the end it is just a key-value pair.
This is also applicable for user-defined variables which is usually defined by application developers and there is no way to mark certain variables as secure.

Thanks,
Padma


Re: How to get the IP addresses of the instances of the same application

DHR
 

The router_status endpoint of the router node gives a nice point-in-time snapshot of the IPs / ports in is for each app URL, in json, andis continually kept up to date by the CF platform.

On 4 Mar 2016, at 22:31, Jason Sherron <jsherron(a)pivotal.io> wrote:

I'm also very interested to hear about what you might need to do with direct container-to-container communication. We've started an effort to enable it at the network layer, and as Dan gets at, service discovery is a thorny area, and we'd like to hear your feedback.

On Fri, Mar 4, 2016 at 9:07 AM, Daniel Mikusa <dmikusa(a)pivotal.io> wrote:
On Thu, Mar 3, 2016 at 10:32 PM, Malmee Weerasinghe <malmee(a)wso2.com> wrote:
Hi,
When I push an application to cloud foundry, "cf scale myApp -i 5" will increase the number of instances of my application to 5. I want to get the ip addresses of these instances. Is there any way to get the ip addresses and ports of the 5 instances of my application? Is there any API?
Look at the environment variables in the container, things starting with VCAP_ or CF_ provide you with details about the container, app and bound services. It sounds like you're looking for CF_INSTANCE_ADDR in particular.

That said, what are you planning to do with this information? You don't really want to try and talk directly to specific app instances. Those instance can come and go and the IP's can change. If you're talking directly then you have the tedious task of tracking all that information. If instead you talk through the URL mapped to your app then you never have to worry about things changing.

It's probably also worth mentioning that some CF installations will prohibit direct container to container communication.

Dan

I am running cloud foundry with diego in bosh-lite. In documents I have seen that garden API gives container information, but how to call the garden API? I highly appreciate your responses regarding this issue.

Thank you.


Re: `api_z1/0' is not running after update to CF v231

sridhar vennela
 

Hi Wayne,

Can you please verify port 8500 listening? Maybe output of netstat -anp will help.

{"timestamp":"1457136496.397377968","source":"confab","message":"confab.agent-client.verify-joined.members.request.failed","log_level":2,"data":{"error":"Get http://127.0.0.1:8500/v1/agent/members: dial tcp 127.0.0.1:8500: getsockopt: connection refused","wan":false}}

Thank you,
Sridhar


Re: Support for UAA Integration in Apache Qpid Console

James Bayer
 

cool. thanks for sharing this john!

On Fri, Mar 4, 2016 at 1:02 AM, john mcteague <john.mcteague(a)gmail.com>
wrote:

Since not everyone uses RabbitMQ for their messaging, I thought I would
share a recent feature that has been added in Qpid 6.0.1 [1][2].

We worked with the Qpid community so that you can now configure the
management dashboard to use the UAA for auth and validate against the CF
API that a user is permitted to manage this service instance (where the
Qpid console is your service dashboard).

This is a great example of other open source projects building
functionality to support the Cloudfoundry ecosystem.

[1] - https://qpid.apache.org/releases/qpid-java-6.0.1/release-notes.html
[2] - https://issues.apache.org/jira/browse/QPID-7069


--
Thank you,

James Bayer


Re: `api_z1/0' is not running after update to CF v231

Wayne Ha <wayne.h.ha@...>
 

I am able to ping that host:

root(a)5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc:/var/vcap/sys/log# ping -c 1 api.bosh-lite.com
PING api.bosh-lite.com (10.244.0.34) 56(84) bytes of data.
64 bytes from 10.244.0.34: icmp_seq=1 ttl=63 time=0.088 ms
--- api.bosh-lite.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.088/0.088/0.088/0.000 ms

I just use the yml file came with CF 231:

$ grep api.bosh-lite.com bosh-lite-v231.yml | sort -u
api: api.bosh-lite.com
- api.bosh-lite.com
srv_api_uri: https://api.bosh-lite.com

I also found the following in the log file:

{"timestamp":"1457136496.397377968","source":"confab","message":"confab.agent-client.verify-joined.members.request.failed","log_level":2,"data":{"error":"Get http://127.0.0.1:8500/v1/agent/members: dial tcp 127.0.0.1:8500: getsockopt: connection refused","wan":false}}
==> Starting Consul agent...
==> Starting Consul agent RPC...
==> Consul agent running!
Node name: 'api-z1-0'
Datacenter: 'dc1'
Server: false (bootstrap: false)
Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 53, RPC: 8400)
Cluster Addr: 10.244.0.138 (LAN: 8301, WAN: 8302)
Gossip encrypt: true, RPC-TLS: true, TLS-Incoming: true
Atlas: <disabled>

I can also ping the above IP's:

root(a)5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc:/var/vcap/sys/log# ping -c 1 10.244.0.138
PING 10.244.0.138 (10.244.0.138) 56(84) bytes of data.
64 bytes from 10.244.0.138: icmp_seq=1 ttl=64 time=0.044 ms
1 packets transmitted, 1 received, 0% packet loss, time 0ms

root(a)5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc:/var/vcap/sys/log# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.049 ms
1 packets transmitted, 1 received, 0% packet loss, time 0ms

Not sure why there is connection refused.


Re: `api_z1/0' is not running after update to CF v231

sridhar vennela
 

That's correct. You need that job, otherwise, the environment is unusable. Do you know which checklist you are following or using to install bosh-lite? any idea on host configuration- api.bosh-lite.com?


Re: `api_z1/0' is not running after update to CF v231

Wayne Ha <wayne.h.ha@...>
 

Sridhar,

Thanks for your response. I see the following in the log file:

2016/03/05 00:02:38 [crit] 5082#0: *3 connect() to unix:/var/vcap/sys/run/cloud_controller_ng/cloud_controller.sock failed (2: No such file or directory) while connecting to upstream,
server: _, request: "GET /v2/syslog_drain_urls?batch_size=1000 HTTP/1.1", upstream: "http://unix:/var/vcap/sys/run/cloud_controller_ng/cloud_controller.sock:/v2/syslog_drain_urls?batch_size=1000", host: "api.bosh-lite.com"

But I don't know what is the missing file or directory. If I remove cloud_controller_ng from yml:

$ diff -w bosh-lite-v231.yml.1603041454 bosh-lite-v231.yml
etc...
422,423c420,421
< # name: cloud_controller_ng
< # release: cf
---
- name: cloud_controller_ng
release: cf
etc...

The problem will go away:

root(a)5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc:/var/vcap/sys/log# monit summary
The Monit daemon 5.2.4 uptime: 0m
Process 'consul_agent' running
Process 'cloud_controller_clock' running
Process 'cloud_controller_worker_1' running
Process 'metron_agent' running
Process 'statsd-injector' running
Process 'route_registrar' running
System 'system_5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc' running

But I think the environment also becomes unusable.

Thanks,


Re: cf push Error: unable to resolve server address

Amit Kumar Gupta
 

You don't have consul_agent colocated on your api_zN jobs, so they are not
registering the cloud_controller_ng.service.cf-internal service, so DEA
can't download droplets from the CCs. You can see here for example:

https://github.com/cloudfoundry/cf-release/blob/v231/spec/fixtures/aws/cf-manifest.yml#L337-L367

The spiff-based manifest generation tooling is missing this configuration
unfortunately, I have created an issue on GitHub on the dea-hm-workspacefor
this:

https://github.com/cloudfoundry/dea-hm-workspace/issues/5

Best,
Amit

On Tue, Mar 1, 2016 at 9:23 AM, Maros S <slowbackspace(a)gmail.com> wrote:

Here is interesting part from cloud_controller_ng.log
https://gist.github.com/slowbackspace/3d6daebcdc1cc30f5aa9

On api_z1 vm "curl service.cf.internal" returns "Could not resolve host:
service.cf.internal".
Is this the reason why pushing app fails?

cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 192.168.0.2
nameserver 192.168.0.115
search openstacklocal


Re: `api_z1/0' is not running after update to CF v231

sridhar vennela
 

Hi Wayne,

Below jobs are failing. You will find more details about the errors in below dir.

/var/vcap/sys/logs/<job_name>/

Process 'cloud_controller_ng' Execution failed
Process 'cloud_controller_worker_1' Does not exist

Thank you,
Sridhar


Re: How to get the IP addresses of the instances of the same application

Jason Sherron
 

I'm also very interested to hear about what you might need to do with
direct container-to-container communication. We've started an effort to
enable it at the network layer, and as Dan gets at, service discovery is a
thorny area, and we'd like to hear your feedback.

On Fri, Mar 4, 2016 at 9:07 AM, Daniel Mikusa <dmikusa(a)pivotal.io> wrote:

On Thu, Mar 3, 2016 at 10:32 PM, Malmee Weerasinghe <malmee(a)wso2.com>
wrote:

Hi,
When I push an application to cloud foundry, "cf scale myApp -i 5" will
increase the number of instances of my application to 5. I want to get the
ip addresses of these instances. Is there any way to get the ip addresses
and ports of the 5 instances of my application? Is there any API?
Look at the environment variables in the container, things starting with
VCAP_ or CF_ provide you with details about the container, app and bound
services. It sounds like you're looking for CF_INSTANCE_ADDR in particular.

That said, what are you planning to do with this information? You don't
really want to try and talk directly to specific app instances. Those
instance can come and go and the IP's can change. If you're talking
directly then you have the tedious task of tracking all that information.
If instead you talk through the URL mapped to your app then you never have
to worry about things changing.

It's probably also worth mentioning that some CF installations will
prohibit direct container to container communication.

Dan


I am running cloud foundry with diego in bosh-lite. In documents I have
seen that garden API gives container information, but how to call the
garden API? I highly appreciate your responses regarding this issue.

Thank you.


`api_z1/0' is not running after update to CF v231

Wayne Ha <wayne.h.ha@...>
 

Hi,

I tried to deploy CF v231 and got the following error:

Started updating job api_z1 > api_z1/0. Failed: `api_z1/0' is not running after update (00:03:09)

The monit summary shows:

root(a)5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc:/var/vcap/sys/log# monit summary
The Monit daemon 5.2.4 uptime: 12m
Process 'consul_agent' running
Process 'cloud_controller_ng' Execution failed
Process 'cloud_controller_worker_local_1' initializing
Process 'cloud_controller_worker_local_2' initializing
Process 'nginx_cc' initializing
Process 'cloud_controller_migration' running
Process 'cloud_controller_clock' running
Process 'cloud_controller_worker_1' Does not exist
Process 'metron_agent' running
Process 'statsd-injector' running
Process 'route_registrar' running
System 'system_5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc' running

Can someone give me pointers how to fix this problem?

Thanks,

Here is output of bosh vms:

vagrant(a)agent-id-bosh-0:~$ bosh vms --details
+------------------------------------+---------+---------------+--------------+--------------------------------------+--------------------------------------+--------------+
| Job/index | State | Resource Pool | IPs | CID | Agent ID | Resurrection |
+------------------------------------+---------+---------------+--------------+--------------------------------------+--------------------------------------+--------------+
| api_z1/0 | failing | large_z1 | 10.244.0.138 | 3091ce64-8b95-463b-61c7-a6094359c7f7 | 5f0f5c52-01a8-4cc4-afac-d6a25edd8dcc | active |
| blobstore_z1/0 | running | medium_z1 | 10.244.0.130 | c5715c82-9622-416b-5766-32c528786fb1 | 518aa4d3-1296-4e48-b033-d57ad4baf75a | active |
| consul_z1/0 | running | small_z1 | 10.244.0.54 | 11f444db-673a-4243-6ac8-a750b0dd8733 | c9ca7c9e-525a-4604-9fb0-60cc67d59709 | active |
| doppler_z1/0 | running | medium_z1 | 10.244.0.146 | 73882f35-714b-4613-64cf-6491ebed04f3 | e4299f6f-04b5-4373-a00b-f4d7f21fab2e | active |
| etcd_z1/0 | running | medium_z1 | 10.244.0.42 | 7a1da145-5296-47df-55ac-160248a023ed | 1c414c9d-75cc-40b0-928c-6cf674a6a6f2 | active |
| ha_proxy_z1/0 | running | router_z1 | 10.244.0.34 | 84799c83-48b8-407e-6014-1bcf85a9dd91 | 320c8887-68ec-42e9-b00d-d5ab6468a433 | active |
| hm9000_z1/0 | running | medium_z1 | 10.244.0.142 | 4369a61f-5193-4d95-7bfc-a091abe93bb9 | c9cc2239-969e-4cc2-81e9-b808e8fe0f71 | active |
| loggregator_trafficcontroller_z1/0 | running | small_z1 | 10.244.0.150 | 9c17e6f3-c3bf-4ad7-68f6-59f0527ac2f6 | ee8a3439-6852-496e-a497-68607575641a | active |
| nats_z1/0 | running | medium_z1 | 10.244.0.6 | 41fa153c-2973-4748-6ae3-ed6f5a1ee0a4 | e88b340d-9d06-4bbe-bc5a-f0ac3ff1159d | active |
| postgres_z1/0 | running | medium_z1 | 10.244.0.30 | 8465ab2f-0593-485c-7eb6-11f200fc331e | ade6219c-caf1-4aef-8804-8dd7262fc25d | active |
| router_z1/0 | running | router_z1 | 10.244.0.22 | 782da9f1-212f-4c05-5835-56c5f6979c3c | 5d71bb3d-a6f3-4677-bc09-801e99188c38 | active |
| runner_z1/0 | running | runner_z1 | 10.244.0.26 | 64d55ecb-961e-4c0c-5263-188609d235c0 | a85a3958-e701-4b6d-8dc3-2a80bd33c01b | active |
| uaa_z1/0 | running | medium_z1 | 10.244.0.134 | f105c13e-0311-41fd-6d42-0176cf50274a | 5c5af35b-ab34-42fb-b1d5-dd3c927b192b | active |
+------------------------------------+---------+---------------+--------------+--------------------------------------+--------------------------------------+--------------+


Re: How to get the IP addresses of the instances of the same application

Daniel Mikusa
 

On Thu, Mar 3, 2016 at 10:32 PM, Malmee Weerasinghe <malmee(a)wso2.com> wrote:

Hi,
When I push an application to cloud foundry, "cf scale myApp -i 5" will
increase the number of instances of my application to 5. I want to get the
ip addresses of these instances. Is there any way to get the ip addresses
and ports of the 5 instances of my application? Is there any API?
Look at the environment variables in the container, things starting with
VCAP_ or CF_ provide you with details about the container, app and bound
services. It sounds like you're looking for CF_INSTANCE_ADDR in particular.

That said, what are you planning to do with this information? You don't
really want to try and talk directly to specific app instances. Those
instance can come and go and the IP's can change. If you're talking
directly then you have the tedious task of tracking all that information.
If instead you talk through the URL mapped to your app then you never have
to worry about things changing.

It's probably also worth mentioning that some CF installations will
prohibit direct container to container communication.

Dan


I am running cloud foundry with diego in bosh-lite. In documents I have
seen that garden API gives container information, but how to call the
garden API? I highly appreciate your responses regarding this issue.

Thank you.


Re: Allow SCIM user update if phoneNumbers is null

Filip Hanik
 

On Fri, Mar 4, 2016 at 8:41 AM, Kayode Odeyemi <dreyemi(a)gmail.com> wrote:

Filip,

Further deep trace shows that a SCIM object containing phoneNumbers: null
triggers the error, while phoneNumber: [] works

Below is the full trace:

{"message":"Unexpected
error","error":"scim","trace":"org.cloudfoundry.identity.uaa.scim.exception.ScimException:
Unexpected error\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints.handleException(ScimUserEndpoints.java:331)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$FastClassBySpringCGLIB$$d564cbce.invoke(<generated>)\n\tat
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)\n\tat
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)\n\tat
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$EnhancerBySpringCGLIB$$b124460e.handleException(<generated>)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n\tat
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
java.lang.reflect.Method.invoke(Method.java:606)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:339)\n\tat
org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:60)\n\tat
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:138)\n\tat
org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1161)\n\tat
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:998)\n\tat
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)\n\tat
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)\n\tat
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)\n\tat
org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:874)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:649)\n\tat
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.cloudfoundry.identity.uaa.login.XFrameOptionsFilter.doFilterInternal(XFrameOptionsFilter.java:16)\n\tat
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.cloudfoundry.identity.uaa.oauth.BackwardsCompatibleScopeParsingFilter.doFilter(BackwardsCompatibleScopeParsingFilter.java:40)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)\n\tat
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)\n\tat
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:140)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)\n\tat
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.cloudfoundry.identity.uaa.security.web.SecurityFilterChainPostProcessor$UaaLoggingFilter.doFilter(SecurityFilterChainPostProcessor.java:233)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)\n\tat
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)\n\tat
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)\n\tat
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)\n\tat
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)\n\tat
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)\n\tat
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)\n\tat
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)\n\tat
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)\n\tat
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)\n\tat
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)\n\tat
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)\n\tat
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)\n\tat
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat
java.lang.Thread.run(Thread.java:744)\nCaused by:
java.lang.NullPointerException\n\tat
java.util.Arrays$ArrayList.<init>(Arrays.java:2842)\n\tat
java.util.Arrays.asList(Arrays.java:2828)\n\tat
org.cloudfoundry.identity.uaa.scim.ScimUserJsonDeserializer.deserialize(ScimUserJsonDeserializer.java:58)\n\tat
org.cloudfoundry.identity.uaa.scim.ScimUserJsonDeserializer.deserialize(ScimUserJsonDeserializer.java:28)\n\tat
org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)\n\tat
org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1923)\n\tat
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readJavaType(MappingJacksonHttpMessageConverter.java:184)\n\tat
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.read(MappingJacksonHttpMessageConverter.java:179)\n\tat
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:138)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:178)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:98)\n\tat
org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:77)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:157)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:124)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)\n\tat
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)\n\tat
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)\n\t...
57 more\n"}


On Fri, Mar 4, 2016 at 5:04 PM, Filip Hanik <fhanik(a)pivotal.io> wrote:

hi Kayode, can you paste the full exception, this email is missing the
root cause that will be in the bottom of your stack trace.
we can then open an issue and fix it
Filip

On Fri, Mar 4, 2016 at 8:01 AM, Kayode Odeyemi <dreyemi(a)gmail.com> wrote:

On SCIM update, if phoneNumbers is null, UAA breaks with this error
message, {"message":"Unexpected error","error":"scim"}

Here's the full stack trace:
{"message":"Unexpected
error","error":"scim","trace":"org.cloudfoundry.identity.uaa.scim.exception.ScimException:
Unexpected error\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints.handleException(ScimUserEndpoints.java:331)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$FastClassBySpringCGLIB$$d564cbce.invoke(
<generated>)\n\tat
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib
AopProxy.java:708)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)\n\tat
org.springframework.aop.interceptor.ExposeInvocation
Interceptor.invoke(ExposeInvocationInterceptor.java:92)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)\n\tat
org.springframe
work.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$EnhancerBySpringCGLIB$$b124460e.handleException(<generated>)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)


Re: Allow SCIM user update if phoneNumbers is null

Paul Bakare
 

Filip,

Further deep trace shows that a SCIM object containing phoneNumbers: null
triggers the error, while phoneNumber: [] works

Below is the full trace:

{"message":"Unexpected
error","error":"scim","trace":"org.cloudfoundry.identity.uaa.scim.exception.ScimException:
Unexpected error\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints.handleException(ScimUserEndpoints.java:331)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$FastClassBySpringCGLIB$$d564cbce.invoke(<generated>)\n\tat
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)\n\tat
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)\n\tat
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$EnhancerBySpringCGLIB$$b124460e.handleException(<generated>)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n\tat
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
java.lang.reflect.Method.invoke(Method.java:606)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:339)\n\tat
org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:60)\n\tat
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:138)\n\tat
org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1161)\n\tat
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:998)\n\tat
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)\n\tat
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)\n\tat
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)\n\tat
org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:874)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:649)\n\tat
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.cloudfoundry.identity.uaa.login.XFrameOptionsFilter.doFilterInternal(XFrameOptionsFilter.java:16)\n\tat
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.cloudfoundry.identity.uaa.oauth.BackwardsCompatibleScopeParsingFilter.doFilter(BackwardsCompatibleScopeParsingFilter.java:40)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)\n\tat
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)\n\tat
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:140)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)\n\tat
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.cloudfoundry.identity.uaa.security.web.SecurityFilterChainPostProcessor$UaaLoggingFilter.doFilter(SecurityFilterChainPostProcessor.java:233)\n\tat
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)\n\tat
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)\n\tat
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)\n\tat
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)\n\tat
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n\tat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)\n\tat
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)\n\tat
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)\n\tat
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)\n\tat
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)\n\tat
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)\n\tat
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)\n\tat
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)\n\tat
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)\n\tat
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)\n\tat
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n\tat
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat
java.lang.Thread.run(Thread.java:744)\nCaused by:
java.lang.NullPointerException\n\tat
java.util.Arrays$ArrayList.<init>(Arrays.java:2842)\n\tat
java.util.Arrays.asList(Arrays.java:2828)\n\tat
org.cloudfoundry.identity.uaa.scim.ScimUserJsonDeserializer.deserialize(ScimUserJsonDeserializer.java:58)\n\tat
org.cloudfoundry.identity.uaa.scim.ScimUserJsonDeserializer.deserialize(ScimUserJsonDeserializer.java:28)\n\tat
org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)\n\tat
org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1923)\n\tat
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readJavaType(MappingJacksonHttpMessageConverter.java:184)\n\tat
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.read(MappingJacksonHttpMessageConverter.java:179)\n\tat
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:138)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:178)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:98)\n\tat
org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:77)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:157)\n\tat
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:124)\n\tat
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)\n\tat
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)\n\tat
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)\n\tat
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)\n\t...
57 more\n"}

On Fri, Mar 4, 2016 at 5:04 PM, Filip Hanik <fhanik(a)pivotal.io> wrote:

hi Kayode, can you paste the full exception, this email is missing the
root cause that will be in the bottom of your stack trace.
we can then open an issue and fix it
Filip

On Fri, Mar 4, 2016 at 8:01 AM, Kayode Odeyemi <dreyemi(a)gmail.com> wrote:

On SCIM update, if phoneNumbers is null, UAA breaks with this error
message, {"message":"Unexpected error","error":"scim"}

Here's the full stack trace:
{"message":"Unexpected
error","error":"scim","trace":"org.cloudfoundry.identity.uaa.scim.exception.ScimException:
Unexpected error\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints.handleException(ScimUserEndpoints.java:331)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$FastClassBySpringCGLIB$$d564cbce.invoke(
<generated>)\n\tat
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib
AopProxy.java:708)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)\n\tat
org.springframework.aop.interceptor.ExposeInvocation
Interceptor.invoke(ExposeInvocationInterceptor.java:92)\n\tat
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)\n\tat
org.springframe
work.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)\n\tat
org.cloudfoundry.identity.uaa.scim.endpoints.ScimUserEndpoints$$EnhancerBySpringCGLIB$$b124460e.handleException(<generated>)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)