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>