This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Steps to reproduce: - create full remote project - open Project Properties - change tool from "Default (GNU)" to "GNU" - press Apply or OK Result: Exception appears java.lang.IllegalArgumentException: rfs://tester@amkar:22/export/home/tester/working/test_io_gnu is not a valid classpath entry; it must end with a slash. at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.verify(SimplePathResourceImplementation.java:97) at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.verify(SimplePathResourceImplementation.java:65) at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.<init>(SimplePathResourceImplementation.java:108) at org.netbeans.spi.java.classpath.support.ClassPathSupport.createResource(ClassPathSupport.java:79) at org.netbeans.modules.cnd.makeproject.MakeProject$MutableCP.getResources(MakeProject.java:1380) at org.netbeans.api.java.classpath.ClassPath$SPIListener.propertyChange(ClassPath.java:1118) at org.openide.util.WeakListenerImpl$PropertyChange.propertyChange(WeakListenerImpl.java:196) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276) at org.netbeans.modules.cnd.makeproject.MakeProject$MutableCP.stateChanged(MakeProject.java:1411) at org.openide.util.WeakListenerImpl$Change.stateChanged(WeakListenerImpl.java:329) [catch] at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:133) at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:119) at org.netbeans.modules.cnd.makeproject.MakeSources.fireChange(MakeSources.java:263) at org.netbeans.modules.cnd.makeproject.MakeSources.sourceRootsChanged(MakeSources.java:281) at org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor.addSourceRoot(MakeConfigurationDescriptor.java:1146) at org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor.checkForChangedSourceRoots(MakeConfigurationDescriptor.java:1200) at org.netbeans.modules.cnd.makeproject.api.MakeCustomizerProvider$OptionListener.actionPerformed(MakeCustomizerProvider.java:328) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.Dialog$3.run(Dialog.java:1098) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1096) at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1038) at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1072) at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1060) at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:126) at org.openide.util.Mutex$1AWTWorker.run(Mutex.java:1377) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
As I understand, this repeats in full IDE (with Java). The key point is here: MakeProject.java:1380 list.add(new PathResourceImpl( ClassPathSupport.createResource(g.getRootFolder().getURL())));
The root cause is as follows. SimplePathResourceImplementation.verify() checks that url.toString() is ended with a trailing slash and throws exception if it is not. (It seems strange to use toString(), but URL.toString javadoc reads that it's the same as toExternalForm()) Remote directories URLs does not have trailing slash (local directories URL do). It would be easy to add this trailing slash for directories; but for links this would cost additional request to server (right now link does not "know" at creation whether it links to a directory or not)
This happens on Windows as well. Moreover the tested build (from elif) contains only cnd (no java). I changed "Run command" (added some arguments) pressed OK and got: java.lang.IllegalArgumentException: rfs://tester@amkar:22/export/home/tester/working/test_io_gnu is not a valid classpath entry; it must end with a slash. at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.verify(SimplePathResourceImplementation.java:97) at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.verify(SimplePathResourceImplementation.java:65) at org.netbeans.modules.java.classpath.SimplePathResourceImplementation.<init>(SimplePathResourceImplementation.java:108) at org.netbeans.spi.java.classpath.support.ClassPathSupport.createResource(ClassPathSupport.java:79) at org.netbeans.modules.cnd.makeproject.MakeProject$MutableCP.getResources(MakeProject.java:1380) at org.netbeans.api.java.classpath.ClassPath$SPIListener.propertyChange(ClassPath.java:1118) at org.openide.util.WeakListenerImpl$PropertyChange.propertyChange(WeakListenerImpl.java:196) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276) at org.netbeans.modules.cnd.makeproject.MakeProject$MutableCP.stateChanged(MakeProject.java:1411) at org.openide.util.WeakListenerImpl$Change.stateChanged(WeakListenerImpl.java:329) [catch] at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:133) at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:119) at org.netbeans.modules.cnd.makeproject.MakeSources.fireChange(MakeSources.java:263) at org.netbeans.modules.cnd.makeproject.MakeSources.sourceRootsChanged(MakeSources.java:281) at org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor.addSourceRoot(MakeConfigurationDescriptor.java:1148) at org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor.checkForChangedSourceRoots(MakeConfigurationDescriptor.java:1202) at org.netbeans.modules.cnd.makeproject.api.MakeCustomizerProvider$OptionListener.actionPerformed(MakeCustomizerProvider.java:328) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.Dialog$3.run(Dialog.java:1098) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1096) at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1038) at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1072) at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1060) at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:126) at org.openide.util.Mutex$1AWTWorker.run(Mutex.java:1377) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
http://hg.netbeans.org/cnd-main/rev/052f6ba4d478
Integrated into 'main-golden', will be available in build *201103060000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/052f6ba4d478 User: Vladimir Kvashin <vkvashin@netbeans.org> Log: fix (workaround) for #196328 - IllegalArgumentException on save Project properties
Integrated into 'main-golden', will be available in build *201103070000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/911eaccb77ed User: Vladimir Kvashin <vkvashin@netbeans.org> Log: fixed a typo (additional fix for #196328 - IllegalArgumentException on save Project properties)