- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图用java.util.List[POJO]填充Scala中Vaadin的IndexedContainer强>.
有问题吗? -> 抛出 NullPointerException。
哪里? -> 位置显示在带注释的代码片段中。
注意 -> 不同的是,我使用迭代器来填充容器。我有 7 个对象,其中 1 个对象运行正常,但在插入第二个对象时抛出异常。
我正在对其他分层容器执行相同的操作,并且它们工作正常。
要点:列表不包含任何空数据项。输出也在不同的代码片段中给出,但有异常(exception)。
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
}
以下是输出:
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)
最佳答案
有时 Vaadin 容器 addItem 返回 null 而不是新的 Item id。
因此,更好的选择是使用 container.getItem(container.addItem)
而不是 container.addItem()
。
或者添加您自己的自定义项目 ID,例如 container.addItem(customId)
来添加您想要在容器中添加的项目。
关于java - NullPointerException,在scala中填充vaadin的IndexedContainer时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395767/
我们正在从 Vaadin 7 迁移到 Vaadin 8,我们大量使用 IndexedContainer。在此版本中找不到此类。实际上是否有任何快速修复或我们必须进行一些重大重构?谢谢。 最佳答案 Va
我们正在从 Vaadin 7 迁移到 Vaadin 8,我们大量使用 IndexedContainer。在此版本中找不到此类。实际上是否有任何快速修复或我们必须进行一些重大重构?谢谢。 最佳答案 Va
我是一名优秀的程序员,十分优秀!