Skip to main content
Solved

Developer Studio Build Home Cache


Forum|alt.badge.img+9

I’ve started a project and ca new omponent recently using Dev Studio 10.82.6231.10191024. Project internals were generated with a _create_project_root.cmd script.
Now the Build Home folder says an index is 11 days old, but some of original component’s entities have changed but I can’t refer to those dynamically. Clear and Refresh does not update components, but gives NRE :
 

Show content

java.lang.NullPointerException
    at ifs.dev.nb.project.ui.explorer.BuildHomeNodeIx$OpenBuildHomeFolderAction.enable(BuildHomeNodeIx.java:635)
    at org.openide.util.actions.NodeAction$DelegateAction.resultChanged(NodeAction.java:615)
    at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:487)
    at com.sun.proxy.$Proxy4.resultChanged(Unknown Source)
[catch] at org.openide.util.lookup.ProxyLookup$1Notify.run(ProxyLookup.java:180)
    at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:189)
    at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:125)
    at org.openide.explorer.DefaultEMLookup.updateLookups(DefaultEMLookup.java:134)
    at org.openide.explorer.DefaultEMLookup.propertyChange(DefaultEMLookup.java:166)
    at org.openide.util.WeakListenerImpl$PropertyChange.propertyChange(WeakListenerImpl.java:215)
    at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
    at org.openide.explorer.ExplorerManager$2.run(ExplorerManager.java:891)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEvent(NbMutexEventProvider.java:118)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:93)
    at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:89)
    at org.openide.util.Mutex.readAccess(Mutex.java:260)
    at org.openide.explorer.ExplorerManager.fireInAWT(ExplorerManager.java:888)
    at org.openide.explorer.ExplorerManager$1AtomicSetSelectedNodes.fire(ExplorerManager.java:294)
    at org.openide.explorer.ExplorerManager.setSelectedNodes(ExplorerManager.java:305)
    at org.openide.explorer.ExplorerManager$1SetExploredContextAndSelection.run(ExplorerManager.java:399)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:193)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation$1R.run(DefaultMutexImplementation.java:1037)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.doWrapperAccess(DefaultMutexImplementation.java:1054)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:183)
    at org.openide.util.Mutex.readAccess(Mutex.java:260)
    at org.openide.explorer.ExplorerManager.setExploredContextAndSelection(ExplorerManager.java:420)
    at org.openide.explorer.view.BeanTreeView.selectionChanged(BeanTreeView.java:149)
    at org.openide.explorer.view.TreeView.callSelectionChanged(TreeView.java:833)
    at org.openide.explorer.view.TreeView$TreePropertyListener.run(TreeView.java:1475)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation$1Exec.run(DefaultMutexImplementation.java:973)
    at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1938)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:979)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:942)
    at org.netbeans.modules.openide.util.DefaultMutexImplementation.postReadRequest(DefaultMutexImplementation.java:308)
    at org.openide.util.Mutex.postReadRequest(Mutex.java:371)
    at org.openide.explorer.view.TreeView$TreePropertyListener.valueChanged(TreeView.java:1444)
    at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:635)
    at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1093)
    at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:294)
    at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:188)
    at javax.swing.JTree.setSelectionPath(JTree.java:1634)
    at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2393)
    at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3609)
    at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(BasicTreeUI.java:3586)
    at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3545)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
    at java.awt.Component.processMouseEvent(Component.java:6530)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 

 

If I manually remove cache from %AppData%\DeveloperStudio\10.82\var\cache\build_home_cache\<project_path>\ (just what Clear and Refresh does), it respawns on IDE start without a change. Even if I physically move component directories out from \source to which Build Home refers to, somehow that old cache gets back with the same [index 11 days old]. Cache is cached somewhere I can’t find...

 

Is there a way to get around that and rebuild that index?

 

 

Best answer by Tomas Ruderfelt

You need to manually run create_project_root.cmd again after you have added/changed files to your build home. That is not done by Developer Studio.

Internally at IFS we have setup something called AutoBuilder which is a series of scripts that builds and installs our development environment on demand or scheduled. The last step in AutoBuilder runs the create_project_root.cmd script to make the build_home_index.zip up to date with the new BuildHome content.

View original
Did this topic help you find an answer to your question?
This topic has been closed for replies.

5 replies

Forum|alt.badge.img+9
  • Author
  • Do Gooder (Partner)
  • 42 replies
  • August 19, 2021

I got back to the problem and found that a build_home_index.zip cached in %AppData% gets updated from BuildHome path. If I remove index from BuildHome, I get the actual content, but projection won’t find dynamic entities.

So the question is - how can I force BuildHome reindexing externally?
Refreshing from context menu throws null-pointer exception as above.
 

 


Forum|alt.badge.img+9
  • Author
  • Do Gooder (Partner)
  • 42 replies
  • August 19, 2021

I tried to report an issue from Developer Studio, but got a message:
JIRA isue was not created because: gbglcrd10

So I’ll just post report here:
 

Show content

Steps to Reproduce

First of all, _create_project_root.cmd is called to create a new project folder. IFS Customization project is created for existing folder with Build Home folder provided. Build Home folder gets indexed and build_home_index.zip is created. Now I can browse components in that folder.

Later on, when I update contents of BuildHome, say, one of components gets customized and additional entities are added and I need to reference those in my projection; BuildHome displays same old index [index is ... days old].

Actual Behavior

I press Refresh Cache or Clear and Refresh Cache on BuildHome nothing happens and I get an error in Notifications tab which is a NullPointerException.

Expected Behavior

I would expect to build_home_index.zip recreated and display the actual contents, just like when I remove  build_home_index.zip from BuildHome.

Troubleshooting/Testing Steps Attempted

If I remove  build_home_index.zip from BuildHome, I see the actual content with all new entities in listed components, but projection wouldn't generate as there's no index found and entities are missing. When I tried to replace  build_home_index.zip from BuildHome with the one from %AppData%\DeveloperStudio\10.82\var\cache\build_home_cache\, the BuildHome displays the old outdated content and [index is 11 days old] changed to [index is 14 days old].

Workaround

So far, no workaround is found and no way to continue developing my component further.


java.lang.NullPointerException
    at ifs.dev.nb.project.api.BuildHomeFileCacheManager.clearCachedFiles(BuildHomeFileCacheManager.java:527)
    at ifs.dev.nb.project.ui.explorer.BuildHomeNodeIx$ClearLocalCache.performAction(BuildHomeNodeIx.java:698)
    at org.openide.util.actions.NodeAction$DelegateAction$1.run(NodeAction.java:586)
    at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95)
    at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
    at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
    at org.openide.util.actions.NodeAction$DelegateAction.actionPerformed(NodeAction.java:583)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 

 


Forum|alt.badge.img+20
  • Superhero (Employee)
  • 496 replies
  • Answer
  • August 19, 2021

You need to manually run create_project_root.cmd again after you have added/changed files to your build home. That is not done by Developer Studio.

Internally at IFS we have setup something called AutoBuilder which is a series of scripts that builds and installs our development environment on demand or scheduled. The last step in AutoBuilder runs the create_project_root.cmd script to make the build_home_index.zip up to date with the new BuildHome content.


Forum|alt.badge.img+9
  • Author
  • Do Gooder (Partner)
  • 42 replies
  • August 19, 2021

Thank you very much, @Tomas Ruderfelt ! Your suggestion worked. Despite the Studio is showing [index not found] in red, I can now generate projection code and all the necessary dependencies are picked up.
I’ll then create a script to call that index rebuild from create_project_root.cmd.


Forum|alt.badge.img+11
  • Hero (Customer)
  • 124 replies
  • August 30, 2021

Hi,

I am new with IFS DEV Studio. I am trying to build my project but I can’t because I continue to receive the message “The application server is empty, there is nothing to deploy!”.  Does anyone can help me? I am using IFS 9.

 

Thanks


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings