SDK 3.5-sdk2 error warning from opening .matdef file

I just opened a .matDef file in the SDK for the first time since upgrading to 3.5-sdk2 and it gave me this error message which said If this was due to you opening a j3md from a jar (org.openide.filesystems.FSException) then don't report it to us, if it differs, do so!

In this case I was opening a custom .j3md file from my assets folder and not from a jar, so it sounded like I should report the error.

jMonkeyEngine SDK Exception Report
Please submit me to the Issue Tracker
Comment: This means that there was an unexpected exception when parsing the j3md. If this was due to you opening a j3md from a jar (org.openide.filesystems.FSException) then don't report it to us, if it differs, do so!
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
	at com.jme3.gde.materialdefinition.fileStructure.leaves.DefineBlock.parse(DefineBlock.java:57)
	at com.jme3.gde.materialdefinition.fileStructure.leaves.DefineBlock.<init>(DefineBlock.java:21)
	at com.jme3.gde.materialdefinition.fileStructure.DefinesBlock.<init>(DefinesBlock.java:21)
	at com.jme3.gde.materialdefinition.fileStructure.TechniqueBlock.<init>(TechniqueBlock.java:56)
	at com.jme3.gde.materialdefinition.fileStructure.MatDefBlock.<init>(MatDefBlock.java:60)
	at com.jme3.gde.materialdefinition.EditableMatDefFile.load(EditableMatDefFile.java:136)
	at com.jme3.gde.materialdefinition.EditableMatDefFile.<init>(EditableMatDefFile.java:104)
	at com.jme3.gde.materialdefinition.MatDefDataObject.getEditableFile(MatDefDataObject.java:288)
	at com.jme3.gde.materialdefinition.navigator.MatDefNavigatorPanel.updateData(MatDefNavigatorPanel.java:127)
	at com.jme3.gde.materialdefinition.MatDefDataObject.createEditor(MatDefDataObject.java:206)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.netbeans.core.spi.multiview.MultiViewFactory$MapMVD.createElement(MultiViewFactory.java:431)
	at org.netbeans.core.multiview.MultiViewModel.getElementForDescription(MultiViewModel.java:197)
	at org.netbeans.core.multiview.MultiViewModel.getActiveElement(MultiViewModel.java:107)
	at org.netbeans.core.multiview.MultiViewModel.getActiveElement(MultiViewModel.java:103)
	at org.netbeans.core.multiview.MultiViewPeer.assignLookup(MultiViewPeer.java:236)
	at org.netbeans.core.multiview.MultiViewCloneableTopComponent.getLookup(MultiViewCloneableTopComponent.java:98)
	at org.openide.windows.CloneableTopComponent.componentOpened(CloneableTopComponent.java:169)
	at org.netbeans.core.multiview.MultiViewCloneableTopComponent.componentOpened(MultiViewCloneableTopComponent.java:128)
	at org.openide.windows.WindowManager.componentOpenNotify(WindowManager.java:282)
	at org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:1182)
	at org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:773)
	at org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:333)
	at org.netbeans.core.windows.WindowManagerImpl.topComponentOpenAtTabPosition(WindowManagerImpl.java:1295)
	at org.netbeans.core.windows.WindowManagerImpl.topComponentOpen(WindowManagerImpl.java:1252)
	at org.openide.windows.TopComponent.open(TopComponent.java:472)
	at org.openide.windows.TopComponent.open(TopComponent.java:452)
	at org.openide.windows.CloneableOpenSupport.openCloneableTopComponent(CloneableOpenSupport.java:183)
	at org.openide.windows.CloneableOpenSupport$1.run(CloneableOpenSupport.java:82)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEvent(NbMutexEventProvider.java:97)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.writeAccess(NbMutexEventProvider.java:62)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.writeAccess(LazyMutexImplementation.java:56)
	at org.openide.util.Mutex.writeAccess(Mutex.java:291)
	at org.openide.windows.CloneableOpenSupport.open(CloneableOpenSupport.java:79)
	at org.openide.text.CloneableEditorSupport.open(CloneableEditorSupport.java:412)
	at org.openide.awt.ActionDefaultPerfomer.actionPerformed(ActionDefaultPerfomer.java:47)
	at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:442)
	at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:263)
	at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:106)
	at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:68)
	at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:91)
	at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:74)
	at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:354)
	at org.openide.explorer.view.TreeView$PopupSupport.mouseClicked(TreeView.java:1608)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6638)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6400)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4556)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Operating System: Windows 10
Engine Version as used by the SDK: 3.5.2-stable

There doesn’t appear to be anything wrong that I can notice and I was still able to open and edit the text for my matDef in the SDK after getting this error. But based on the error message it sounds like I should still report this issue.

Edit: something i just noticed: the material editor is broken for materials that are using JME’s stock PBR shader. But it is working fine when I open any materials using one of my own custom shaders located in the project’s assets folder.

I’ll see if I can track it down with the stacktrace. I remember seeing that error message a lot when working with the shader editor. Not sure who wrote it, or if it’s still relevant (either way)

I can’t reproduce your other PBR shader problem. It’s the same that is reported in the issue tracker?

1 Like

I think the error message I pasted that happened when opening a .j3md file could be unrelated to the issue with the visual material editor not opening properly.

I do not get any error message when opening the material editor, it just looks blank like this when I open any material that uses any of JME’s stock shaders such as pbr or unshaded.

And I can still edit the material’s text file if I click the “source” tab without any issues, its just the display for the visual editor that’s missing.

My project that’s having this issue was also created with the sdk’s basic gradle game template quite a while ago using the sdk 3.2 release.