Hi,

when you say:

org.apache.syncope.client.console.wizards.any.PlainSchema

I think you mean:

org.apache.syncope.client.console.wizards.any.*PlainAttrs*

and that class is now updated in our latest 2.1.x version [1] (in specific from v2.1.3), so please try to upgrade to 2.1.3 or 2.1.4-SNAPSHOT!

Best regards,
Matteo

[1] https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java#L414-L429


On 05/03/19 23:09, pcrowder wrote:
I'm was getting the following error when trying to edit a user from the forms
view list. I'm using version 2.1.2. It happens when the console tries to
load the plain schemas. Note there is no issue editing users from the User
List under Realms.

The error is:

16:32:00.880 ERROR
org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener -
Exception found
org.apache.wicket.WicketRuntimeException: Error attaching this container for
rendering: [PlainSchemas [Component id = content]]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1765)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at 
org.apache.wicket.markup.html.form.Form.onBeforeRender(Form.java:1775)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.onBeforeRender(Component.java:3788)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.page.PartialPageUpdate.prepareComponent(PartialPageUpdate.java:322)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.page.PartialPageUpdate.writeComponents(PartialPageUpdate.java:250)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.page.PartialPageUpdate.writeTo(PartialPageUpdate.java:162)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.ajax.AjaxRequestHandler.respond(AjaxRequestHandler.java:384)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
~[wicket-request-8.1.0.jar:8.1.0]
        at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70)
~[wicket-native-websocket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
~[catalina.jar:9.0.10]
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
~[catalina.jar:9.0.10]
        at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
~[tomcat-coyote.jar:9.0.10]
        at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
~[tomcat-coyote.jar:9.0.10]
        at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764)
~[tomcat-coyote.jar:9.0.10]
        at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388)
~[tomcat-coyote.jar:9.0.10]
        at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
~[tomcat-coyote.jar:9.0.10]
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
~[?:1.8.0_131]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
~[?:1.8.0_131]
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
~[tomcat-util.jar:9.0.10]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.util.NoSuchElementException: No value present
        at java.util.Optional.get(Optional.java:135) ~[?:1.8.0_131]
        at
org.apache.syncope.client.console.wizards.any.PlainAttrs$PlainSchemas$1.populateItem(PlainAttrs.java:416)
~[classes/:2.1.2]
        at
org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:523)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:124)
~[wicket-core-8.1.0.jar:8.1.0]
        at org.apache.wicket.Component.beforeRender(Component.java:937)
~[wicket-core-8.1.0.jar:8.1.0]
        at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
~[wicket-core-8.1.0.jar:8.1.0]
        ... 56 more

This is happening in
org.apache.syncope.client.console.wizards.any.PlainSchema class'
populateItem method. The value for
previousObject.getPlainAttr(attrTO.getSchema() will never be null because it
is returning an optional object. Also, I believe the OR condition should be
AND condition.

                     if (previousObject != null
                             &&
(*previousObject.getPlainAttr(attrTO.getSchema()) == null*
                             *||* !ListUtils.isEqualList(
ListUtils.select(previousObject.getPlainAttr(attrTO.getSchema()).get().getValues(),
                                             object ->
StringUtils.isNotEmpty(object)),
                                     ListUtils.select(attrTO.getValues(),
object -> StringUtils.isNotEmpty(object))))) {

                         List<String> oldValues =
previousObject.getPlainAttr(attrTO.getSchema()) == null
                                 ? Collections.<String>emptyList()
                                 :
previousObject.getPlainAttr(attrTO.getSchema()).get().getValues();
                         panel.showExternAction(new
LabelInfo("externalAction", oldValues));
                     }

The change I made locally that seemed to correct the issue is:

                     if (previousObject != null
                             &&
(previousObject.getPlainAttr(attrTO.getSchema())*.isPresent()*
                             *&&* !ListUtils.isEqualList(
ListUtils.select(previousObject.getPlainAttr(attrTO.getSchema()).get().getValues(),
                                     object ->
StringUtils.isNotEmpty(object)),
                             ListUtils.select(attrTO.getValues(), object ->
StringUtils.isNotEmpty(object))))) {

                         List<String> oldValues =
previousObject.getPlainAttr(attrTO.getSchema()) == null
                                 ? Collections.<String>emptyList()
                                 :
previousObject.getPlainAttr(attrTO.getSchema()).get().getValues();
                         panel.showExternAction(new
LabelInfo("externalAction", oldValues));
                     }


Can you confirm this is the correct fix?

Phil


--
Sent from: http://syncope-user.1051894.n5.nabble.com/

--

Dott. Matteo Alessandroni

Software Engineer @ Tirasa S.r.l.

Viale Vittoria Colonna, 97 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173

http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17>

Tirasa S.r.l. <http://www.tirasa.net>

Reply via email to