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.
Created attachment 161704 [details] Stack trace When investigation the issue 267378 we found that remote subversion support performs a very lengthy operations when it is notified by ConnectionManager that connection occurred. This ends up with calling a remote binaries just in the same thread. Such behaviour is not acceptable. The stack fragment that shows this is as follows: at org.netbeans.modules.remotefs.versioning.api.ProcessUtils.execute(ProcessUtils.java:115) at org.netbeans.modules.remotefs.versioning.api.ProcessUtils.executeInDir(ProcessUtils.java:85) at org.netbeans.modules.subversion.remote.client.cli.Commandline.exec(Commandline.java:121) at org.netbeans.modules.subversion.remote.client.cli.CommandlineClient.exec(CommandlineClient.java:984) at org.netbeans.modules.subversion.remote.client.cli.CommandlineClient.getInfo(CommandlineClient.java:323) at org.netbeans.modules.subversion.remote.client.cli.CommandlineClient.getInfoFromWorkingCopy(CommandlineClient.java:968) at sun.reflect.GeneratedMethodAccessor150.invoke(GeneratedMethodAccessor150.java:0) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.netbeans.modules.subversion.remote.client.SvnClientInvocationHandler.handle(SvnClientInvocationHandler.java:452) at org.netbeans.modules.subversion.remote.client.SvnClientInvocationHandler.invokeMethod(SvnClientInvocationHandler.java:397) at org.netbeans.modules.subversion.remote.client.SvnClientInvocationHandler$2.run(SvnClientInvocationHandler.java:217) at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:252) at org.openide.util.Mutex.readAccess(Mutex.java:250) at org.netbeans.modules.subversion.remote.client.SvnClientInvocationHandler.invoke(SvnClientInvocationHandler.java:222) at com.sun.proxy.$Proxy27.getInfoFromWorkingCopy(.java:0) at org.netbeans.modules.subversion.remote.util.SvnUtils.getInfoFromWorkingCopy(SvnUtils.java:1021) at org.netbeans.modules.subversion.remote.util.SvnUtils.getRepositoryRootUrl(SvnUtils.java:617) at org.netbeans.modules.subversion.remote.Subversion$GlobalInfo.run(Subversion.java:769) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.subversion.remote.Subversion$GlobalInfo.getTopmostRepositoryUrl(Subversion.java:755) at org.netbeans.modules.subversion.remote.Subversion$GlobalInfo.access$200(Subversion.java:739) at org.netbeans.modules.subversion.remote.Subversion.cacheIfNeededAllForTopmost(Subversion.java:731) at org.netbeans.modules.subversion.remote.Subversion.getTopmostManagedAncestor(Subversion.java:578) at org.netbeans.modules.subversion.remote.SubversionVCS.getTopmostManagedAncestor(SubversionVCS.java:111) at org.netbeans.modules.versioning.core.DelegatingVCS.getTopmostManagedAncestor(DelegatingVCS.java:190) at org.netbeans.modules.versioning.core.VersioningManager.getOwner(VersioningManager.java:452) at org.netbeans.modules.versioning.core.VersioningManager.getOwner(VersioningManager.java:348) at org.netbeans.modules.versioning.core.util.Utils.getOwner(Utils.java:175) at org.netbeans.modules.versioning.ui.history.HistoryComponent.getOwner(HistoryComponent.java:360) at org.netbeans.modules.versioning.ui.history.HistoryComponent.propertyChange(HistoryComponent.java:367) 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.netbeans.modules.versioning.core.VersioningManager.propertyChange(VersioningManager.java:605) 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.netbeans.modules.versioning.core.spi.VersioningSystem.fireVersionedFilesChanged(VersioningSystem.java:201) at org.netbeans.modules.subversion.remote.SubversionVCS.propertyChange(SubversionVCS.java:228) 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.netbeans.modules.subversion.remote.Subversion.versionedFilesChanged(Subversion.java:333) at org.netbeans.modules.subversion.remote.SubversionVCS.connected(SubversionVCS.java:234) at org.netbeans.modules.remotefs.versioning.impl.RemoteFileSystemConnectionManagerImpl.connected(RemoteFileSystemConnectionManagerImpl.java:98) at org.netbeans.modules.nativeexecution.api.util.ConnectionManager.fireConnected(ConnectionManager.java:262)
One of the "TODO" comments on the stack reads: "move this into a request processor" :)
fixed by http://hg.netbeans.org/cnd-main/rev/0f099e7a343b
Integrated into 'main-silver', will be available in build *201608200002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/0f099e7a343b User: Vladimir Kvashin <vkvashin@netbeans.org> Log: fixed #267625 - remote.Subversion should not perform huge operations in connection listener