<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">&lt;<a moz-do-not-send="true"
                href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>&gt;</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">&lt;<a
                              moz-do-not-send="true"
                              href="mailto:ssilvert@redhat.com"
                              target="_blank">ssilvert@redhat.com</a>&gt;</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">&lt;<a
                                            moz-do-not-send="true"
                                            href="mailto:ssilvert@redhat.com"
                                            target="_blank">ssilvert@redhat.com</a>&gt;</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">&lt;<a
moz-do-not-send="true" href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>&gt;</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">&lt;<a
moz-do-not-send="true" href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>&gt;</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">&lt;<a
moz-do-not-send="true" href="mailto:juraj.janosik77@gmail.com"
                                                          target="_blank">juraj.janosik77@gmail.com</a>&gt;</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":"&lt;URL&gt;:&lt;PORT&gt;/auth/admin/realms/&lt;REALM&gt;/clients/3"<br>
                                                          <div>"headers":<br>
[["Content-Type","application/json"],<br>
                                                          <div>["Authorization","Bearer
&lt;ACCESS_TOKEN&gt;]]</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>