scope a wrapper? Romain Manni-Bucau @rmannibucau | Blog | Old Blog | Github | LinkedIn
2017-12-07 11:21 GMT+01:00 Matthew Broadhead <matthew.broadh...@nbmlaw.co.uk>: > I couldn't scope it because otherwise couldn't return null > > > On 07/12/2017 09:55, Romain Manni-Bucau wrote: >> >> if you scope this producer you would have a lazy instance and in the >> context of the timer you wouldnt call it so you wouldnt have this NPE >> >> Romain Manni-Bucau >> @rmannibucau | Blog | Old Blog | Github | LinkedIn >> >> >> 2017-12-07 9:49 GMT+01:00 Matthew Broadhead >> <matthew.broadh...@nbmlaw.co.uk>: >>> >>> i have this method to @Produces KeycloakSecurityContext >>> @Produces >>> @Default >>> @Dependent >>> public KeycloakSecurityContext keycloakSecurityContext() { >>> try { >>> if (httpServletRequest instanceof KeycloakPrincipal) { >>> KeycloakPrincipal<KeycloakSecurityContext> >>> keycloakPrincipal >>> = (KeycloakPrincipal<KeycloakSecurityContext>) httpServletRequest >>> .getUserPrincipal(); >>> return keycloakPrincipal.getKeycloakSecurityContext(); >>> } >>> } catch (NullPointerException e) { >>> // e.printStackTrace(); >>> } >>> return null; >>> } >>> i added catch the NullPointerException because httpServletRequest causes >>> an >>> NPE if the KeycloakSecurityContext is injected into an @ApplicationScoped >>> where it has been run from a timer and there is no servlet request. >>> there >>> is no way to null check the httpServletRequest as it blows up behind the >>> scenes >>> is this the right way to do it or is there another way to detect there is >>> no >>> request? > >