View Revisions: Issue #5394

Summary 0005394: An NPE can occur when editing or deleting transforms
Revision 2022-08-08 12:57 by emiller
Description When clicking the "Edit" or "Delete" button for a transform, an NPE can occur if one of the items in the catalog, schema, or table dropdowns is null. For example, if a catalog item is null, the following exception can occur:

2022-08-06 10:36:47,518 ERROR [gui] [DefaultErrorHandler] [qtp1889057031-19] StackTraceKey.init [NullPointerException:475185020] java.lang.NullPointerException
    at com.vaadin.flow.component.select.Select.updateItem(Select.java:690)
    at com.vaadin.flow.component.select.Select.createItem(Select.java:675)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.SliceOps$1$1.accept(SliceOps.java:204)
    at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
    at com.vaadin.flow.component.select.Select.reset(Select.java:738)
    at com.vaadin.flow.component.select.Select.setDataProvider(Select.java:425)
    at com.vaadin.flow.data.binder.HasDataProvider.setItems(HasDataProvider.java:50)
    at com.jumpmind.symmetric.console.impl.N.loadTargetCatalogs(TransformForm.java:623)
    at com.jumpmind.symmetric.console.impl.N.lambda$initFields$3fab9f70$1(TransformForm.java:100)
    at com.vaadin.flow.component.internal.AbstractFieldSupport.lambda$addValueChangeListener$828eca10$1(AbstractFieldSupport.java:98)
    at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
    at com.vaadin.flow.component.ComponentEventBus.fireEvent(ComponentEventBus.java:194)
    at com.vaadin.flow.component.Component.fireEvent(Component.java:358)
    at com.vaadin.flow.component.ComponentUtil.fireEvent(ComponentUtil.java:386)
    at com.vaadin.flow.component.internal.AbstractFieldSupport.setValue(AbstractFieldSupport.java:209)
    at com.vaadin.flow.component.internal.AbstractFieldSupport.setValue(AbstractFieldSupport.java:135)
    at com.vaadin.flow.component.AbstractField.setValue(AbstractField.java:181)
    at com.vaadin.flow.data.binder.Binder$BindingImpl.convertAndSetFieldValue(Binder.java:1332)
    at com.vaadin.flow.data.binder.Binder$BindingImpl.initFieldValue(Binder.java:1243)
    at com.vaadin.flow.data.binder.Binder$BindingImpl.access$200(Binder.java:1076)
    at com.vaadin.flow.data.binder.Binder.lambda$readBean$2(Binder.java:1889)
    at java.util.ArrayList.forEach(ArrayList.java:1259)
    at com.vaadin.flow.data.binder.Binder.readBean(Binder.java:1881)
    at com.jumpmind.symmetric.console.impl.s.<init>(AbstractForm.java:113)
    at com.jumpmind.symmetric.console.impl.N.<init>(TransformForm.java:70)
    at com.jumpmind.symmetric.console.impl.aM.createForm(TransformEditPanel.java:267)
    at com.jumpmind.symmetric.console.ui.common.b$a.<init>(AbstractEditPanel.java:526)
    at com.jumpmind.symmetric.console.ui.common.b.showEditTab(AbstractEditPanel.java:324)
    at com.jumpmind.symmetric.console.ui.common.b.lambda$new$67c1d01$2(AbstractEditPanel.java:136)
    at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
    at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:373)
    at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:264)
    at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:447)
    at java.util.ArrayList.forEach(ArrayList.java:1259)
    at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:447)
    at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62)
    at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:66)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:438)
    at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$1(ServerRpcHandler.java:419)
    at java.util.ArrayList.forEach(ArrayList.java:1259)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:419)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:320)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:92)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1579)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:252)
    at com.jumpmind.symmetric.console.ui.AppServlet.service(AppServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
    at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
    at org.jumpmind.symmetric.web.HttpMethodFilter.doFilter(HttpMethodFilter.java:60)
    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.Server.handle(Server.java:516)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    at java.lang.Thread.run(Thread.java:748)
Revision 2022-08-08 12:56 by emiller
Description When clicking the "Edit" or "Delete" button for a transform, an NPE can occur if one of the items in the catalog, schema, or table dropdowns is null.