I have been getting this error since morning and the designer is not loading some views created by another developer any more. The folder that had the views is blank! Both of us are admin.
That error is unrelated. Are you using the latest beta version? Exactly what build number is it (check the gateway status page).
Actually I was not using the latest designer. I installed the latest designer but I still can’t load the views. I checked the projects folder on the server and the all the views exist on the server
Check that the view.json
is present and has some data (ie, not 0 KB
) for any views that won’t load.
View.json is present and has some json data. Lineviewobject used a folder but now it has become a view!. I have uploaded the content of the Lineviewobject on the server side and also how it looks in the designer now
After installing the latest nightly build the issue went away.
I was working on a new perspective view and it suddenly got corrupt! When I try to open it I see “Error”.
Here is what I see in the log on the server side. Please help!!
Please expand one of those error messages and copy/paste the entire stacktrace here, ideally inside triple backticks:
```
error
```
java.lang.NullPointerException: null
at com.inductiveautomation.perspective.common.config.ProjectConfig.buildComponentResourceSet(ProjectConfig.java:137)
at com.inductiveautomation.perspective.common.config.ProjectConfig.(ProjectConfig.java:113)
at com.inductiveautomation.perspective.common.config.ProjectDiff.(ProjectDiff.java:22)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl.lambda$getDiff$3(PerspectiveProjectCacheImpl.java:204)
at java.base/java.util.Optional.map(Unknown Source)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl.getDiff(PerspectiveProjectCacheImpl.java:120)
at com.inductiveautomation.perspective.gateway.comm.Routes.getProjectUpdate(Routes.java:790)
at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:247)
at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:49)
at com.inductiveautomation.ignition.gateway.dataroutes.DataServlet.service(DataServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:530)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
at java.base/java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException: ViewConfig is null
at java.base/java.util.Objects.requireNonNull(Unknown Source)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl$ProjectBuilder.lambda$parseViews$6(PerspectiveProjectCacheImpl.java:497)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl$ProjectBuilder.parseViews(PerspectiveProjectCacheImpl.java:494)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl$ProjectBuilder.processChangedResources(PerspectiveProjectCacheImpl.java:461)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl$ProjectBuilder.onResourcesModified(PerspectiveProjectCacheImpl.java:457)
at com.inductiveautomation.perspective.gateway.cache.PerspectiveProjectCacheImpl$PerspectiveProjectLifecycle.onResourcesModified(PerspectiveProjectCacheImpl.java:298)
at com.inductiveautomation.ignition.gateway.project.ProjectLifecycle$LifecycleResourceListener.resourcesModified(ProjectLifecycle.java:176)
at com.inductiveautomation.ignition.common.project.AbstractProject.notifyResourceListeners(AbstractProject.java:349)
at com.inductiveautomation.ignition.common.project.AbstractProject.updateEffectiveState(AbstractProject.java:151)
at com.inductiveautomation.ignition.common.project.RuntimeProject.applyChange(RuntimeProject.java:225)
at com.inductiveautomation.ignition.gateway.project.ProjectLifecycleFactory$1.lambda$updateOrStartAffectedProjects$2(ProjectLifecycleFactory.java:190)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at com.inductiveautomation.ignition.gateway.project.ProjectLifecycleFactory$1.updateOrStartAffectedProjects(ProjectLifecycleFactory.java:170)
at com.inductiveautomation.ignition.gateway.project.ProjectLifecycleFactory$1.projectUpdated(ProjectLifecycleFactory.java:144)
at com.inductiveautomation.ignition.gateway.project.BaseProjectManager.fireProjectUpdated(BaseProjectManager.java:809)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at com.inductiveautomation.ignition.gateway.project.BaseProjectManager.push(BaseProjectManager.java:518)
at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.Projects.push(Projects.java:184)
at jdk.internal.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.inductiveautomation.ignition.gateway.servlets.gateway.AbstractGatewayFunction.invoke(AbstractGatewayFunction.java:225)
at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:409)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:530)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
at java.base/java.lang.Thread.run(Unknown Source)
Here is the log from the designer
13:23:43.902 [Designer-Startup] INFO designer.main - Downloading... [+0]
13:23:44.257 [Designer-Startup] INFO designer.main - Cleanup... [+355]
13:23:44.257 [Designer-Startup] INFO designer.main - Initializing UI... [+355]
13:23:44.319 [Designer-Startup] INFO tags.manager.gwinterface - Tag poll rate changed to 250 ms
13:23:44.319 [DesignerExecEngine-1] INFO tags.subscriptions - Changing connected quality to 'Good'
13:23:45.918 [Designer-Startup] INFO designer.main - Starting module: Vision [+2015]
13:23:48.831 [Designer-Startup] INFO designer.main - Starting module: Symbol Factory [+4929]
13:23:48.837 [Designer-Startup] INFO designer.main - Starting module: WebDev [+4934]
13:23:48.852 [Designer-Startup] INFO designer.main - Starting module: Alarm Notification [+4950]
13:24:44.007 [Designer-Startup] INFO designer.main - Starting module: SFC [+60105]
13:24:44.995 [Designer-Startup] INFO designer.main - Starting module: OPC-UA [+61093]
13:24:44.995 [Designer-Startup] INFO designer.main - Starting module: Enterprise Administration [+61093]
13:24:45.016 [Designer-Startup] INFO designer.main - Starting module: SQL Bridge [+61114]
13:24:45.292 [Designer-Startup] INFO designer.main - Starting module: DNP3 Driver [+61390]
13:24:45.292 [Designer-Startup] INFO designer.main - Starting module: OpcCom [+61390]
13:24:45.294 [Designer-Startup] INFO designer.main - Starting module: Perspective [+61392]
13:24:45.389 [Designer-Startup] INFO Perspective.Designer - Starting up Perspective module. Mode: Trial
13:24:45.861 [Designer-Startup] INFO Perspective.ViewWorkspace - Initializing JxBrowser Context with disk cache.
13:24:46.273 [Designer-Startup] INFO Perspective.SessionProps - Session props debug url: http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/(E036C7C5D04548CFFD79852579659D7B)
13:24:47.202 [Designer-Startup] INFO designer.main - Starting module: Reporting [+63300]
13:24:47.244 [Designer-Startup] INFO reporting.Designer - Starting up Reporting Module. Mode: Trial
13:24:47.768 [Designer-Startup] INFO designer.main - Initializing Scripting... [+63866]
13:24:47.850 [Designer-Startup] INFO designer.main - Initializing UI... [+63947]
13:25:32.975 [AWT-EventQueue-0] INFO designer.update-and-save - resourcesDeleted(project="SmartFactoryPOCDev", [DeleteResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlarm, projectName=SmartFactoryPOCDev}}, DeleteResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlarm/FA_Category, projectName=SmartFactoryPOCDev}}, DeleteResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlarm/AlarmEscalationConfigView, projectName=SmartFactoryPOCDev}}, DeleteResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlarm/AlarmRosterConfigView, projectName=SmartFactoryPOCDev}}])
13:25:32.976 [AWT-EventQueue-0] INFO designer.update-and-save - resourcesCreated(project="SmartFactoryPOCDev", [CreateResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlert/AlarmRosterConfigView, projectName=SmartFactoryPOCDev}}, CreateResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlert/AlarmEscalationConfigView, projectName=SmartFactoryPOCDev}}, CreateResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlert, projectName=SmartFactoryPOCDev}}, CreateResourceOperation{resourceId=ProjectResourceId{resourcePath=com.inductiveautomation.perspective/views/Page/ConfigurationPages/FactoryAlert/FA_Category, projectName=SmartFactoryPOCDev}}])
13:25:38.349 [AWT-EventQueue-0] INFO ViewResourceEditor - Perspective remote debugging port open at: http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/(DB57988405D9F89CB23F98F3E9A55008)
13:25:39.372 [Browser Events Thread] INFO Perspective.Designer.BrowserConsole - store.Designer: ViewConfig was requested for session-init, but bridge did not provide a config for this tab id of Page/ConfigurationPages/FactoryAlert/AlarmRosterConfigView
@sudipta.tripathy thanks for sending in the additional details. We’ve actively got a QA team trying to replicate this “resources turn into folders” issue - we’ll circle back with an update once we know more.