<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 11/12/2015 9:59 AM, Stian Thorgersen
wrote:<br>
</div>
<blockquote
cite="mid:CAJgngAf2cW3gRxJH5ZNG27WN4EK46kXFSozVB5mv26Nis39T+w@mail.gmail.com"
type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 12 November 2015 at 15:20, Stan
Silvert <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span class="">
<div>On 11/12/2015 8:59 AM, Stian Thorgersen wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Not sure why this is turning into a
lengthy discussion, but null in the representation
has a meaning. If you look at how it's implemented
the lack of a value (it's set to null) results in
setting the default value only if creating a new
entity. If updating an existing entity a null
value is simply ignored. If you initialize these
in the representation you will end up overriding
existing values. The idea is that someone can
update a single value without having to include
all existing values.</div>
</blockquote>
</span> So at the beginning I said it would be rare for
us to want the default to be null. That's where I was
mistaken. It's good that we had the discussion because
I needed to know that null has that meaning.<br>
<br>
Part of this is Java's fault. A Boolean with three
values isn't really Boolean. George Boole is probably
rolling over in his grave.</div>
</blockquote>
<div><br>
</div>
<div>Not really. It's a object reference so can be set to
null. It's incredible useful and without it Java would be
horrible. You'd have to have a separate boolean
(isMyBooleanSet?)</div>
</div>
</div>
</div>
</blockquote>
I was speaking tounge-in-cheek. However, combined with autoboxing,
it's error-prone. That's the bug we saw here.<br>
<blockquote
cite="mid:CAJgngAf2cW3gRxJH5ZNG27WN4EK46kXFSozVB5mv26Nis39T+w@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>
<div class="h5"><br>
<blockquote type="cite">
<div class="gmail_extra"><br>
<div class="gmail_quote">On 12 November 2015 at
14:45, Stan Silvert <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:ssilvert@redhat.com"
target="_blank">ssilvert@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span>
<div>On 11/12/2015 8:41 AM, Stian
Thorgersen wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">The bug is simply
caused by not checking for null</div>
</blockquote>
</span> Seriously? So every time you call
a getter on a Representation you have to
check for null?<br>
<br>
If a Boolean should not be null then
initialize it properly or use boolean.
<div>
<div><br>
<blockquote type="cite">
<div class="gmail_extra"><br>
<div class="gmail_quote">On 12
November 2015 at 14:40, Stan
Silvert <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:ssilvert@redhat.com"
target="_blank">ssilvert@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<div>On 11/12/2015 8:33 AM,
Stian Thorgersen wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">RepresentationToModel</div>
</blockquote>
The bug happened before
RepresentationToModel could
be called. That's why we
need to initialize variables
properly.
<div>
<div><br>
<blockquote type="cite">
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
12 November 2015
at 14:20, Stan
Silvert <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
text="#000000"
bgcolor="#FFFFFF"><span>
<div>On
11/12/2015
7:39 AM, Stian
Thorgersen
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr"><br>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
12 November
2015 at 13:12,
Stan Silvert <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
text="#000000"
bgcolor="#FFFFFF">
<div>Funny. I
just ran into
that exact NPE
yesterday but
I thought it
was a state
that was
caused by my
new code. So
I only fixed
it in that one
representation
class. But
I'm not ready
to merge that
yet.<br>
<br>
We really need
to go through
all the
representations
and set
defaults for
all instance
variables of
type Boolean.
It's probably
rare that we
would want
that default
to be null.
Even if it
should be null
we should say
so explicitly.</div>
</div>
</blockquote>
<div><br>
</div>
<div>-1 We
want them to
be null. We
set defaults
elsewhere</div>
</div>
</div>
</div>
</blockquote>
</span> Where?
<div>
<div><br>
<blockquote
type="cite">
<div dir="ltr">
<div
class="gmail_extra">
<div
class="gmail_quote">
<div> </div>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
text="#000000"
bgcolor="#FFFFFF">
<div><span><font
color="#888888"><br>
<br>
Stan</font></span>
<div>
<div><br>
<br>
On 11/12/2015
5:42 AM, Stian
Thorgersen
wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote
type="cite">
<div dir="ltr">That's
a bug. It's
failing on "if
(rep.isServiceAccountsEnabled()
..)",
but serviceAccountsEnabled
in the
representation
can be null,
which would
result in this
NPE.
<div><br>
</div>
<div>Can you
create a JIRA
please? If you
did a PR as
well that'd be
even better :)</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
12 November
2015 at 10:58,
Juraj Janosik
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:juraj.janosik77@gmail.com"
target="_blank">juraj.janosik77@gmail.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>Hi,<br>
<br>
</div>
I want to
announce an
issue with "<a
moz-do-not-send="true"
href="http://keycloak.github.io/docs/rest-api/index.html#_update_the_client"
target="_blank">Update the client</a>" via Admin REST API.<br>
</div>
<div><br>
<u>Description:</u>
I want to
change the
description
for existing
client #3.<br>
<br>
<u>Note:</u>
From the
documentation
("<a
moz-do-not-send="true"
href="http://keycloak.github.io/docs/rest-api/index.html#_update_the_client"
target="_blank">Update the client</a>"), body parameter attributes <br>
are required
in schema
"ClientRepresentation".<br>
</div>
<div>Description
of schema
"ClientRepresentation"
notes for any
mandatory
attribute.<br>
<br>
Are some
parameters
mandatory for
successfuly
running of
this scenario
?<br>
<br>
</div>
<u>Tested
scenario:</u><br>
<u>Tested
data:</u><br>
"Update
Client":<br>
"method":"PUT","url":"<URL>:<PORT>/auth/admin/realms/<REALM>/clients/3"<br>
<div>"headers":<br>
[["Content-Type","application/json"],<br>
<div>["Authorization","Bearer
<ACCESS_TOKEN>]]</div>
</div>
<div>"body":<br>
"{<br>
"id":"3",<br>
"clientId":"testclient-3",<br>
"name":
"testclient-3",<br>
"description":
"TESTCLIENT-3
v.2"<br>
}"<br>
</div>
<br>
</div>
<u>Test
Result:</u>
Status Code:
500 Internal
Server Error<br>
<br>
</div>
<u>Some parts
from console
logs:</u><br>
10:35:31,591
ERROR
[io.undertow.request]
(default
task-18)
UT005023:
Exception
handling
request to
/auth/admin/realms/universities/clients/3:
java.lang.RuntimeException:
request path:
/auth/admin/realms/universities/clients/3<br>
...<br>
at
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:61)<br>
... 29
more<br>
<b>Caused by:
java.lang.NullPointerException</b><br>
at
org.keycloak.services.resources.admin.ClientResource.update(ClientResource.java:106)<br>
<br>
<br>
</div>
Thanks a lot.<br>
<br>
</div>
Best Regards,<br>
</div>
Juraj<br>
<div>
<div>
<div>
<div>
<div>
<div><br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
keycloak-user
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
<a
moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/keycloak-user"
rel="noreferrer"
target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
keycloak-user mailing list
<a moz-do-not-send="true" href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a>
<a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a></pre>
</blockquote>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
keycloak-user
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
<a
moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/keycloak-user"
rel="noreferrer"
target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</body>
</html>