Ich versuche, die IndexedContainer von Vaadin in Scala mit dem java.util.List [POJO] zu füllen.Nullpointer, während der IndexedContainer von Vaadin in scala Füllung
Problem? -> NullPointerException werfen.
Wo? -> Der Platz wird im Code-Snippet mit Kommentar angezeigt.
Hinweis -> Die andere Sache ist, verwende ich Iterator, um den Container zu füllen. Ich habe 7 Objekte, die Dinge gehen für 1 Objekt in Ordnung, aber werfen beim Einfügen des 2. Objekts eine Ausnahme.
Ich mache das gleiche mit anderen hierarchischen Containern und sie funktionieren ordnungsgemäß.
Punkt: Die Liste enthält kein Null-Datenelement. Ausgabe ist auch in verschiedenen Schnipsel mit Ausnahme gegeben.
def getOtherAccessContainer(): IndexedContainer = {
var container = new IndexedContainer
container.addContainerProperty("User", classOf[Any], "-")
container.addContainerProperty("user_id", classOf[Any], "-")
container.addContainerProperty("User Group", classOf[Any], "-")
container.addContainerProperty("user_familyid", classOf[Any], "-")
container.addContainerProperty("Object Type", classOf[Any], "-")
container.addContainerProperty("Object", classOf[Any], "-")
container.addContainerProperty("object_id", classOf[Any], "-")
container.addContainerProperty("Object Group", classOf[Any], "-")
container.addContainerProperty("object_familyid", classOf[Any], "-")
container.addContainerProperty("Permission", classOf[Any], "-")
val access_list = accessor.getGrantedObjectList(accessibleuserlist);
var iterator = access_list.iterator()
var iterator2 = access_list.iterator()
println()
// Just to show that list of POJO is not having null value.
while (iterator2.hasNext()) {
val pojo_obj = iterator2.next()
println(pojo_obj.username + "---" + pojo_obj.user_id + "---" + pojo_obj.user_familyname + "---" + pojo_obj.user_family_id + "---" + pojo_obj.object_type + "---" + pojo_obj.object_name +
"---" + pojo_obj.object_id + "---" + pojo_obj.object_familyname + "---" + pojo_obj.object_family_id + "---" + pojo_obj.permission)
}
// This loop fills the data in container.
while (iterator.hasNext()) {
val pojo_obj = iterator.next()
var child: Item = container.addItem()
if (pojo_obj == null) {
println("Trouble is here." + pojo_obj.username)
}
// Print some properties of POJO to be inserted before the Insertion is occured.
println("pojo_obj properties :-) " + pojo_obj.username + "---" + pojo_obj.object_name + "---" + pojo_obj.user_id + "---" + pojo_obj.user_familyname + "---" + pojo_obj.user_family_id)
child.getItemProperty("User").asInstanceOf[Property[Any]].setValue(pojo_obj.username) // <- This line Throws the NullPointerException during 2nd Iteration.
child.getItemProperty("user_id").asInstanceOf[Property[Any]].setValue(pojo_obj.user_id)// <- If I omitted the line above, It throws NullPointerException for this line and so on.
child.getItemProperty("User Group").asInstanceOf[Property[Any]].setValue(pojo_obj.user_familyname)
child.getItemProperty("user_familyid").asInstanceOf[Property[Any]].setValue(pojo_obj.user_family_id)
child.getItemProperty("Object Type").asInstanceOf[Property[Any]].setValue(pojo_obj.object_type)
child.getItemProperty("Object").asInstanceOf[Property[Any]].setValue(pojo_obj.object_name)
child.getItemProperty("object_id").asInstanceOf[Property[Any]].setValue(pojo_obj.object_id)
child.getItemProperty("Object Group").asInstanceOf[Property[Any]].setValue(pojo_obj.object_familyname)
child.getItemProperty("object_familyid").asInstanceOf[Property[Any]].setValue(pojo_obj.object_family_id)
child.getItemProperty("Permission").asInstanceOf[Property[Any]].setValue(pojo_obj.permission.toString())
}
container
}
Unten ist der Ausgang:
parth---4cc19690-e819-11e5-a3a1-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
ravi---d1515310-e9ad-11e5-b18e-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
uttam---dca16200-e462-11e5-90ec-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
parth---4cc19690-e819-11e5-a3a1-c1cf090b354c---parth---4cc19690-e819-11e5-a3a1-c1cf090b354c---sa_table--- cluster_test---19713360-ed94-11e5-bf9e-c1cf090b354c---cluster_test---19713360-ed94-11e5-bf9e-c1cf090b354c---0
parth---4cc19690-e819-11e5-a3a1-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
uttam---dca16200-e462-11e5-90ec-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
ravi---d1515310-e9ad-11e5-b18e-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66---sa_table---App_Welcome---bce4bd70-ec34-11e5-bbd6-91bbc2299c26---system---9aa06252-e9c6-11e5-9ce9-5e5517507c66---1
pojo_obj properties :-) parth---App_Welcome---4cc19690-e819-11e5-a3a1-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66
pojo_obj properties :-) ravi---App_Welcome---d1515310-e9ad-11e5-b18e-c1cf090b354c---Analytics Team---ff81457a-e9cf-11e5-9ce9-5e5517507c66
16/04/04 11:50:42 ERROR DefaultErrorHandler:
java.lang.NullPointerException
at com.system.tableManager.TreeStructContainer.getOtherAccessContainer(TreeStructContainer.scala:245)
at com.analytics.UI.views.ObjectLevelAccess$1.valueChange(ObjectLevelAccess.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1008)
at com.vaadin.ui.AbstractField.fireValueChange(AbstractField.java:1159)
at com.vaadin.ui.AbstractField.setValue(AbstractField.java:570)
at com.vaadin.ui.AbstractSelect.setValue(AbstractSelect.java:729)
at com.vaadin.ui.AbstractField.setValue(AbstractField.java:468)
at com.vaadin.ui.ComboBox.changeVariables(ComboBox.java:730)
at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:603)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:422)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:79)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1409)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:364)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Dies macht keinen Sinn, weil 'addItem()' das gleiche wie 'getItem()' zurückgibt. Obwohl ich es mit beiden Suggestions versuchen kann. Ich denke über diesen Vorschlag nach, weil ich zuvor bei allen hierarchischen Containern explizit die ItemId in 'addItem()' hinzugefügt habe. –
Ich bin überrascht, dass es funktioniert .. !! Ich denke in meinem Fall gibt 'addItem()' null zurück. Aber ich kann nicht herausfinden ** "warum ..?" ** –