Code Monkey home page Code Monkey logo

idea-plugin-remotesynchronizer's Introduction

What it is ?

RemoteSynchronizer plugin allows you to synchronize files with remote locations. Instead of manually copying files from your project to their runtime location using external tools (command line, file explorer, ...), RemoteSynchronizer launches copies from Idea, using paths customized for project. It is also able to delete obsolete files on remote locations.

How to use it ?

This plugin is based on paths mappings which link project files/directories and their target(s). After you have configured these paths from project settings, you just invoke one of the RemoteSynchronizer actions, using popup menu from any files selection, from the project view pane or from current editor :

  • Synchronize this: synchronize all selected files/dirs
  • Synchronize all opened: synchronize all files opened in editors
  • Synchronize all: synchronize all files in the project.

First, obsolete files, i.e. files which no longer exist within the projet, will be deleted in target directories mapped with current selection. Then, selected files which are included in paths mappings will be copied if their date is different from the date of their target. All operations will be logged in dedicated consoles.

Tip

To synchronize a java class file, you can select the source file (from current editor, project explorer, ...) as well as the class file (c.f. samples).

Settings

Settings are defined in Preferences (formerly Project settings), just look for "RemoteSynchronizer".

Import/Export buttons allow to backup plugin configuration using XML files. Paths may be stored as absolute or relative depending on chosen option.

Mappings configuration

Mapping configuration

Paths mappings are gathered within targets. These targets can be activated/deactived at any time. For example, you could define a target for your development server and another for a test server. Synchronizations will be launched for all active targets. Each target is linked to one console at least (a new console may be created when existing console is busy with a long copy). Targets are renamed by double-clicking on tab titles.

Synchronization mappings

Synchronizations are configured from paths mappings: these mappings link source paths to synchronize with their target paths. When a file is synchronized, the closest matching definition is used. Note that this means that you have to use different targets to synchronize a file with different locations. For a given target, a file will be copied at most one time, using the best matching mapping.

Tip

Concerning java classes, you have to configure output paths and not source paths. However, as written above, you may select java source files for the synchronization actions.

The third attribute of mappings defines if obsolete files should be deleted when synchronization is launched for this mapping. Files are considered as obsolete when they are found on remote locations but not in your project, according the paths mappings. This must be used carefully : if you aren't the only one to work on these remote locations, you could delete files produced by others !

Tip

You are strongly encouraged to test your configuration before launching first synchronization. RemoteSynchronizer provides a simulation mode for this. Simulation mode only logs operations which would be done in real mode, without any risk !

Paths excluded from copy

You can prevent some files to be copied using ANT pattern. For example, to prevent java source files to be copied, you will write **/*.java, and for SVN files **/.svn/*.

Paths excluded from deletion

You can also prevent some files to be deleted on remote location. You will also use ANT patterns.

General settings

General settings

  • Simulation mode: you should start by activating this option if you are not sure about your configuration. Synchronizations will be logged (in italic) so you can check what will occur, but no copy or deletion will be launched.
  • Store relative paths: if checked, all paths will be stored as relative from directory storing IDEA project file (.ipr)
  • Synchronize on save: if checked, project will be synchronized on save (could be dangerous if you saved incomplete files!).
  • Save before synchronize: if checked, project will be saved before synchronization.
  • Create missing directories: if checked, destination directories will be created as needed
  • Allow concurrent synchronizations: if checked, several synchronizations may be launched in parallel

Logs settings

General settings

  • Clear before synchronization: if checked, console is cleared before each synchronization
  • Shows log window when synchronization starts: if checked, console is shown when synchronization starts. This is useful when you want check all operation results.
  • Font: font used in the console
  • Display source paths: by default, only the destination path is shown in logs. If checked, you will see the source path too
  • Display excluded files: if you activate this option, you will see files which are excluded from synchronization
  • Display identical files: if you activate this option, you will see files which are already synchronized

Samples

Using the settings from the screenshot, and considering c:\project\classes being the output path for c:\project\src :

If you select (1)File will be copied to (1)
c:\project\jsp\login\index.jspd:\deployed\web\jsp\login\index.jsp
c:\project\classes\Foo.classd:\deployed\WEB-INF\classes\Foo.class
c:\project\src\Foo.javad:\deployed\WEB-INF\classes\Foo.class (2)
c:\project\src\Snoop.java[excluded]
c:\project\src\test\FooTest.java[excluded]
c:\project\readme.txtd:\deployed\readme (3)
c:\project\history.txtd:\deployed\docs\history.txt (3)

Comments:

(1). paths must be absolute. However, they will be stored as relative to the project file if you have checked this option in the project settings (from the paths pane)

(2). a java class may be copied from source file or class file. Not that if you select source file, inner classes will be automatically copied with the main lass but the source file itself will be copied (unless you put it in excluded paths, which you will generally do)

(3). when a mapping is defined with a source path corresponding to a file and a destination path which does not end with a '/', the destination path is considered as being the destination file. With a '/' at the end, the destination path is considered as being the parent directory of the file

Console

RemoteSynchronizer actions are always logged in the target consoles, so you can check what is being deleted or copied and where. You have to check logs console to see the copy result. Dependending on your configuration, the console pane will be automatically shown when errors occur.

Synchronizations are executed in background. Several synchronizations may be launched in parallel. You can use buttons in console pane to stop, interrupt or resume them.

Note that when a file is being copied, there's no way to cancel its copy. The cancel button stops the copy after the current file has been copied.

Copy symbols:

Symbols placed before paths give some information about current operations. Their meaning is given at the top of the console:

  • (/): destination file did exist, it was replaced
  • (+): destination file did not exist, it was created
  • (-): source file did not exist, destination file was deleted
  • (=): destination file and source file have the same date, they are considered as being identical, file is not copied
  • (?): selected file is a java source not compiled, so its class file can't be copied
  • (^): selected file is not included in the settings

Installation

Just use IDEA plugin manager.

To do

  • Option to show operation status using status bar or popup window
  • Option to synchronized files continuously
  • SSH support

Credits

Thanks to Messia ([email protected]) for the logo icon.

Thanks to YourKit for providing a free licence for YourKit Java Profiler.

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at !YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

idea-plugin-remotesynchronizer's People

Contributors

rogererens avatar syllant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

idea-plugin-remotesynchronizer's Issues

All project files scanned instead of the configured folders

Hi there,

i've installed the plugin, configured it to watch a small folder with 20 css files...
it works as intended however, every time the sync detects a save and runs, it freezes intellij for a minute... often it even ends up in an endless freeze loop until i kill it with ctrl+alt+del

from the log i can see that it is probably since it is scanning the whole project for changes once the sync starts to run... i can see all the project files listed in the log and get the result as:
1 file copied
42365 files ignored

if i disable the log entries for "source paths", "exluded paths" and "identical" files, the freeze is a bit shorter for about 20 seconds but and i get "1 file copied, 20 ignored" but seeing how long it freezes it, i bet it is till going through all the files in the background since im running an ssd and never see that kind of delays with intellij.. so why would the "file watching" reach out of the specified folder? or are there some configurations that i am missing?

RemotSynchronizer can't be configured on MacOs

I attach folder via NFS from remote server to my Mac Book Pro
And try to configure plugin to sync project to folder inside folder mounted via NFS.
But click to "Ok" button do nothing, configuration can't be applied, modal window can' be closed.
PyCharm 2018.1.4 Community Edition, 2017.1.8 CE, 2017.2.7 CE

2018-06-07 23 32 58

Got Null Pointer Exception in log:

null
java.lang.NullPointerException
at org.sylfra.idea.plugins.remotesynchronizer.utils.PathsUtils.getRelativePath(PathsUtils.java:83)
at org.sylfra.idea.plugins.remotesynchronizer.ui.dialogs.AbstractPathDialog.formatInputPath(AbstractPathDialog.java:69)
at org.sylfra.idea.plugins.remotesynchronizer.ui.dialogs.SynchroMappingDialog.updateValueFromDialog(SynchroMappingDialog.java:62)
at org.sylfra.idea.plugins.remotesynchronizer.ui.dialogs.AbstractPathDialog.doOKAction(AbstractPathDialog.java:140)
at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1868)
at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1828)
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.BasicRootPaneUI$Actions.actionPerformed(BasicRootPaneUI.java:208)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2883)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:307)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:250)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2975)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2967)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2846)
at java.awt.Component.processEvent(Component.java:6325)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4903)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:27)
at java.awt.Component.dispatchEventImpl(Component.java:4774)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
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:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:786)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:705)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1077)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:694)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:426)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1688)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1637)
at org.sylfra.idea.plugins.remotesynchronizer.ui.config.ActionsHolder$AddTableItemAction.actionPerformed(ActionsHolder.java:98)
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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6548)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
at java.awt.Component.processEvent(Component.java:6313)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4903)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
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:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:786)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:723)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1077)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:694)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:426)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1688)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1637)
at com.intellij.openapi.options.newEditor.SettingsDialog.lambda$show$0(SettingsDialog.java:69)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:153)
at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:69)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:97)
at com.intellij.ide.actions.TemplateProjectPropertiesAction.actionPerformed(TemplateProjectPropertiesAction.java:28)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:301)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:307)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:104)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:291)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at com.apple.laf.ScreenMenuItemCheckbox.itemStateChanged(ScreenMenuItemCheckbox.java:193)
at java.awt.CheckboxMenuItem.processItemEvent(CheckboxMenuItem.java:389)
at java.awt.CheckboxMenuItem.processEvent(CheckboxMenuItem.java:357)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:355)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:343)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:767)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
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:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:786)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:727)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395)
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)

class file not found

hi syllant
Thank you for providing such a good plugin, it helped me to accomplish a lot of things, but I found a problem.look like this:
image

I am using the version 1.10 of RemoteSynchronizer and Intellij IDEA 2016.1.4

Please look the screenshot of the configuration below.
image

Strangely enough, I had no problem debugging mode(download source code and compiling it myself).

My English is poor, please forgive me.

thinks
Martin

Shortcuts do not work with IntelliJ 14.0.1

All seems ok about shortcut settings of the plugin, but nothing is performed when trying one of them.
The synchronization works well when performed from contextual menu of project window.

Remove French translation

i18n was implemented when the OpenAPI was new and i18n was expected to be supported. Pointless now!

Updating to 1.9.1 Plugin Error

After updating my plugin on intellij 13, this is the second time btw, I'm getting an Unsupported major.min version 51.0 error. I would put the stack trace here but it won't let me copy past it, so here is the next best thing.

In the mean time I'll just go back to 1.7.3

Thanks.
screen shot 2014-02-13 at 9 57 11 am

NoClassDefFoundError when using plugin in IDEA 13 (Cardea-IU-132-106)

I get this error:

org.sylfra.idea.plugins.remotesynchronizer.RemoteSynchronizerPlugin@bd8632b: com/intellij/peer/PeerFactory
java.lang.NoClassDefFoundError: com/intellij/peer/PeerFactory
    at org.sylfra.idea.plugins.remotesynchronizer.RemoteSynchronizerPlugin.initToolWindow(RemoteSynchronizerPlugin.java:180)
    at org.sylfra.idea.plugins.remotesynchronizer.RemoteSynchronizerPlugin.projectOpened(RemoteSynchronizerPlugin.java:149)
    at com.intellij.openapi.project.impl.ProjectImpl.c(ProjectImpl.java:420)
    at com.intellij.openapi.project.impl.ProjectImpl.access$200(ProjectImpl.java:76)
    at com.intellij.openapi.project.impl.ProjectImpl$MyProjectManagerListener.projectOpened(ProjectImpl.java:457)
    at com.intellij.openapi.project.impl.ProjectManagerImpl$2.projectOpened(ProjectManagerImpl.java:155)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.e(ProjectManagerImpl.java:1050)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:415)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.loadAndOpenProject(ProjectManagerImpl.java:506)
    at com.intellij.ide.impl.ProjectUtil.openProject(ProjectUtil.java:179)
    at com.intellij.ide.RecentProjectsManager.doOpenProject(RecentProjectsManager.java:46)
    at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:356)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114)
    at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:228)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:219)
    at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:209)
    at com.intellij.util.messages.impl.MessageBusImpl.access$000(MessageBusImpl.java:43)
    at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:131)
    at com.sun.proxy.$Proxy41.appStarting(Unknown Source)
    at com.intellij.idea.IdeaApplication.c(IdeaApplication.java:394)
    at com.intellij.idea.IdeaApplication.access$600(IdeaApplication.java:64)
    at com.intellij.idea.IdeaApplication$IdeStarter$2.run(IdeaApplication.java:361)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:347)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:696)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:524)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: com.intellij.peer.PeerFactory PluginClassLoader[RemoteSynchronizer, 1.7.2]
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:82)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 44 more

Perhaps this might fix this (in src/main/java/org/sylfra/idea/plugins/remotesynchronizer/RemoteSynchronizerPlugin.java:185):
change

ContentFactory contentFactory = PeerFactory.getInstance().getContentFactory();

to

ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();

?

ClassNotFound error after installing plugin

After installing your plugin on IntelliJ Community Edition v13.0.1, I receive the following error:

class with name "org.sylfra.idea.plugins.remotesynchronizer.actions.RemoteSynchronizeSelectedAction" not found [Plugin: RemoteSynchronizer]: class with name "org.sylfra.idea.plugins.remotesynchronizer.actions.RemoteSynchronizeSelectedAction" not found [Plugin: RemoteSynchronizer]
com.intellij.diagnostic.PluginException: class with name "org.sylfra.idea.plugins.remotesynchronizer.actions.RemoteSynchronizeSelectedAction" not found [Plugin: RemoteSynchronizer]
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convert(ActionManagerImpl.java:262)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:232)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:225)
at com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:301)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:259)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1201)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1194)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:945)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1194)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1209)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1188)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.doPreloadActions(ActionManagerImpl.java:1177)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.access$200(ActionManagerImpl.java:70)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$4.run(ActionManagerImpl.java:1161)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:436)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:153)
Caused by: java.lang.ClassNotFoundException: org.sylfra.idea.plugins.remotesynchronizer.actions.RemoteSynchronizeSelectedAction PluginClassLoader[RemoteSynchronizer, 1.8]
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:68)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convert(ActionManagerImpl.java:255)
... 20 more

Synchronization 'on save' causes entire IDE to hang

When I update the java file and hit ctrl+s, I see synchronizing in the RemoteSynchronizer console and entire IDE hangs. The same can be achieved by hitting 'Synchronize all' function.
TaskManager shows 33% of CPU usage and IDE is not responsive.
IDEA 14.1.2
System: WIN8.1 64bit.
Project: 30 modules, around 5400 java files.

Do you use `rsync`?

I am looking for a rsync based solution to synchronize with server and I am puzzled why JetBrains didn't still done so although requests date form 2011.

I found your plugin but I cannot find how it actually works although it looks like it uses rsync?

Can you clarify that? You could also add such information to description as that would greatly help for easier locating your plugin.

Include installation instructions

Unfortunately, "Just use IDEA plugin manager." is not sufficient. The help function in PHPStorm is quite limited, and there appear to be multiple types of plugins available, none of which seem to match up with what is in this repository.

Add general option for disabling logging

I don't want to see the log window pop-up every time intellij saves a file.

Obviously some people might have different use cases and need that, so an option for this would be ideal.

doesn't work on IDEA 13

.lang.NoSuchMethodError: com.intellij.openapi.fileChooser.FileChooser.chooseFiles(Ljava/awt/Component;Lcom/intellij/openapi/fileChooser/FileChooserDescriptor;Lcom/intellij/openapi/vfs/VirtualFile;)[Lcom/intellij/openapi/vfs/VirtualFile;
at org.sylfra.idea.plugins.remotesynchronizer.ui.dialogs.AbstractPathDialog$2.actionPerformed(AbstractPathDialog.java:104)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:696)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1082)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:786)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:462)
at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1543)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1511)
at org.sylfra.idea.plugins.remotesynchronizer.ui.config.ActionsHolder$AddTableItemAction.actionPerformed(ActionsHolder.java:98)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:696)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1082)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:786)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:462)
at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1543)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1511)
at com.intellij.ide.actions.ShowSettingsUtilImpl._showSettingsDialog(ShowSettingsUtilImpl.java:72)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:54)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:63)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:162)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:261)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:916)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:124)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:231)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:104)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:512)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:696)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

OS-X Support?

I'm new to intellij. I'm running 14 and 1.8 JDK. Installed the plugin. I don't see a menu item in the Tools menu.

I also can't find Project Settings Panel. :). I'm googling I'm googling.

Already disposed: Project (Disposed) PROJECT_NAME_HERE

Hello
I have been facing this with one of my projects. (Rest don't throw this error).
This happens whenever I save the file and Remote Sync is called.
The file does get synced but the following error is thrown in IntelliJ (2017.2.6).
Using RemoteSynchronizer 1.12

Already disposed: Project (Disposed) _PROJECT_NAME_HERE_
java.lang.AssertionError: Already disposed: Project (Disposed) _PROJECT_NAME_HERE_
	at com.intellij.openapi.components.impl.ComponentManagerImpl.getPicoContainer(ComponentManagerImpl.java:257)
	at com.intellij.openapi.components.impl.ComponentManagerImpl.getPicoContainer(ComponentManagerImpl.java:56)
	at com.intellij.openapi.components.ServiceManager.doGetService(ServiceManager.java:47)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:42)
	at com.intellij.openapi.roots.ProjectFileIndex.getInstance(ProjectFileIndex.java:44)
	at com.intellij.openapi.roots.ProjectFileIndex$SERVICE.getInstance(ProjectFileIndex.java:38)
	at org.sylfra.idea.plugins.remotesynchronizer.utils.ConfigStateComponent$1.beforeDocumentSaving(ConfigStateComponent.java:60)
	at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
	at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:443)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:404)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:393)
	at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:374)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:45)
	at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:231)
	at com.sun.proxy.$Proxy22.beforeDocumentSaving(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:153)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:132)
	at com.sun.proxy.$Proxy22.beforeDocumentSaving(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$doSaveDocumentInWriteAction$4(FileDocumentManagerImpl.java:428)
	at com.intellij.pom.core.impl.PomModelImpl.guardPsiModificationsIn(PomModelImpl.java:411)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.doSaveDocumentInWriteAction(FileDocumentManagerImpl.java:427)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$doSaveDocument$2(FileDocumentManagerImpl.java:390)
	at com.intellij.openapi.application.WriteAction.run(WriteAction.java:91)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.doSaveDocument(FileDocumentManagerImpl.java:390)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:312)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:290)
	at com.intellij.openapi.components.impl.stores.StoreUtil.saveDocumentsAndProjectsAndApp(StoreUtil.java:118)
	at com.intellij.openapi.application.impl.ApplicationImpl.saveAll(ApplicationImpl.java:1437)
	at com.intellij.ide.actions.SaveAllAction.actionPerformed(SaveAllAction.java:36)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:216)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:233)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:576)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$2(IdeKeyEventDispatcher.java:625)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:624)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:479)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:213)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:621)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	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)

All files are being Ignored

hi,
I am using the version 1.11 of RemoteSynchronizer. It says ignored for all the files. Nothing is being synched. Please find the screenshot of the configuration below.
image
I am using Intellij IDEA 2016.3

Regards,
Ahsan

Nothing synced: file ignored

Hi,

don't know it this is a Issue or bug, or feature. But Can't sync any file. So I try to report it.
Sync always ends with "file ignored". Tried lots of options, nothing helped.
Using plugin v1.11. BTW the version 1.9 worked better and had more options and menu shortcuts, was more user friendly overall. (my thought)

anyway thanks for the plugin and all effort.

Thanks.

ssss 2016-08-12 o 15 08 28

Feature request: Syncronisch is been triggered by a file change

It should be nice when a file is changed, it automatically synchronizes with the given target(s) . So also implicit changes should be triggered. When a java or groovy or other source file is changed it is reflected to one or mote class files. This class files should be automatically be synchronized.

update failed for AnAction with ID=RemoteSynchronizer.RerunLastSynchroAction: com/intellij/openapi/actionSystem/DataKeys

update failed for AnAction with ID=RemoteSynchronizer.RerunLastSynchroAction: com/intellij/openapi/actionSystem/DataKeys
java.lang.NoClassDefFoundError: com/intellij/openapi/actionSystem/DataKeys
at org.sylfra.idea.plugins.remotesynchronizer.utils.Utils.getPlugin(Utils.java:71)
at org.sylfra.idea.plugins.remotesynchronizer.utils.Utils.getCurrentCopierThread(Utils.java:79)
at org.sylfra.idea.plugins.remotesynchronizer.actions.toolbar.RerunLastSynchroAction.update(RerunLastSynchroAction.java:25)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:111)
at com.intellij.openapi.actionSystem.impl.Utils.a(Utils.java:167)
at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:126)
at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.run(ActionToolbarImpl.java:890)
at com.intellij.openapi.wm.impl.FocusManagerImpl.a(FocusManagerImpl.java:616)
at com.intellij.openapi.wm.impl.FocusManagerImpl.g(FocusManagerImpl.java:597)
at com.intellij.openapi.wm.impl.FocusManagerImpl.e(FocusManagerImpl.java:567)
at com.intellij.openapi.wm.impl.FocusManagerImpl.access$200(FocusManagerImpl.java:55)
at com.intellij.openapi.wm.impl.FocusManagerImpl$7.run(FocusManagerImpl.java:465)
at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1971)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:443)
at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.a(ActionToolbarImpl.java:936)
at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.(ActionToolbarImpl.java:178)
at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.(ActionToolbarImpl.java:149)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.createActionToolbar(ActionManagerImpl.java:193)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.createActionToolbar(ActionManagerImpl.java:189)
at org.sylfra.idea.plugins.remotesynchronizer.ui.ToolPanel.(ToolPanel.java:35)
at org.sylfra.idea.plugins.remotesynchronizer.RemoteSynchronizerPlugin.initToolWindow(RemoteSynchronizerPlugin.java:180)
at org.sylfra.idea.plugins.remotesynchronizer.RemoteSynchronizerPlugin.projectOpened(RemoteSynchronizerPlugin.java:148)
at com.intellij.openapi.project.impl.ProjectImpl.c(ProjectImpl.java:418)
at com.intellij.openapi.project.impl.ProjectImpl.access$200(ProjectImpl.java:76)
at com.intellij.openapi.project.impl.ProjectImpl$MyProjectManagerListener.projectOpened(ProjectImpl.java:454)
at com.intellij.openapi.project.impl.ProjectManagerImpl$2.projectOpened(ProjectManagerImpl.java:155)
at com.intellij.openapi.project.impl.ProjectManagerImpl.e(ProjectManagerImpl.java:1041)
at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:411)
at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:178)
at com.intellij.platform.NewDirectoryProjectAction.generateProject(NewDirectoryProjectAction.java:95)
at com.intellij.platform.NewDirectoryProjectAction.actionPerformed(NewDirectoryProjectAction.java:48)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:162)
at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:169)
at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:132)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:310)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: com.intellij.openapi.actionSystem.DataKeys PluginClassLoader[RemoteSynchronizer, 1.7.3]
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:77)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 67 more

properties file being ignored.

hi,
here I come again.

I found a problem๏ผŒthe file is ignored when I synchronize the property file located in classpath:*.properties,but I have nothing to do with the entire module.

I have no problem with other files (such as JAVA files);

please find the screenshot of the configuration below.
image

module structure
---src
------dbconfig.properties
---WebContent
------WEB-INF

compiler output
image

log
2017-04-26 20:21:56 (^) (from E:\IdeaProjects***\src\dbconfig.properties)
1 file ignored

my god,i can't upload pictures.

I am using the version 1.12 of RemoteSynchronizer and Intellij IDEA 2016.1.4

I sincerely hope you can understand what I mean, even though my English is poor.

RemoteSynchronizer not showing up in IntelliJ 16 EAP Settings Dialogue

Hi,

I am using the upcoming version of IntelliJ Idea V16 EAP and I noticed that the remote synchronizer plugin is not showing up in the settings dialog anymore.

As a workaround I now a) either edtit the projects .idea\workspace.xml file directly (which holds the sync sources and targets) or start up my "old" IntelliJ 14, open the current project and update the path settings for RemoteSynchronizer.

I think this might only be a small issue. Did IntelliJ 16 change the way plugins are registered within the settings dialog?

doc issue: how to config the remote connection

no words on how to config the remote connection! Thus cannot figure out how to use it at all.
does it depend on assumed functionality of idea itself? Does it support the idea community version?

"Synchronize on save" syncs all files, not only the saved one(s)

My project contains more than 7.000 files. When changing and saving just one, the plugin synchronizes all files instead of only the one that was just saved. This causes the IDE to hang for quite a while. Would it be possible to change the behaviour to only sync the file(s) that was/were just saved? There is still the option to manually start a sync on a folder.

unchanged files are synchronized, is this expected ?

Hi,

I have setup remotesync on a maven project with 3 modules to sync to a local weblogic autodeploy directory. Every time i do ctrl-alt-* i can see from the log that every single class file in the project is first removed then readded.

From the docs as i understand it should only copy those files for which the timestamp was updated. Is this correct ?

Thanks
Jorg

Only synchronizes first occurance of same source path

I have sources that need to be synchronized to two (and more) locations, i. e. there are two entries with the same source path but different target paths:

2016-05-17 16_46_42-settings

The files are synced only to the first target path. The second target path of the same source is ignored.

PhpStorm Version 2016.1.1
RemoteSynchronizer Version 1.10

PhpStorm Porting

Is it possible or more precisely, do you have any plans to make this wonderful plugin avaliable for php-storm?

NPE when opening RemoteSynchronizer panel in Settings

I'm NPE when opening RemoteSynchronizer panel in Settings. This did not happen when initially opening it, but appeared after adding a syncronize folder.

Stack trace following

Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=javax.swing.RepaintManager$ProcessingRunnable@3d1fd8,notifier=null,catchExceptions=false,when=1325757074903] on sun.awt.windows.WToolkit@e3570c
java.lang.NullPointerException
    at org.sylfra.idea.plugins.remotesynchronizer.utils.ConfigPathsManager.isOutputPath(ConfigPathsManager.java:93)
    at org.sylfra.idea.plugins.remotesynchronizer.ui.tables.AbstractPathTable$RelativePathCellRenderer.getTableCellRendererComponent(AbstractPathTable.java:208)
    at javax.swing.JTable.prepareRenderer(JTable.java:5720)
    at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
    at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
    at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1770)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
    at javax.swing.JComponent.paintComponent(JComponent.java:752)
    at javax.swing.JComponent.paint(JComponent.java:1029)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JViewport.paint(JViewport.java:747)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JViewport.paint(JViewport.java:747)
    at com.intellij.ui.components.JBViewport.paint(JBViewport.java:59)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1491)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1422)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1225)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:786)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:694)
    at javax.swing.RepaintManager.access$700(RepaintManager.java:41)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1636)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:602)
    at java.awt.EventQueue$1.run(EventQueue.java:600)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:694)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:534)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
    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 com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:709)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:416)
    at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1323)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1308)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.a(ShowSettingsUtilImpl.java:65)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:47)
    at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:63)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:260)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:861)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:119)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:226)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:100)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.a(BegMenuItemUI.java:512)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)
    at java.awt.Component.processMouseEvent(Component.java:6288)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6053)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4651)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4481)
    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:4481)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:602)
    at java.awt.EventQueue$1.run(EventQueue.java:600)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:616)
    at java.awt.EventQueue$2.run(EventQueue.java:614)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:694)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:530)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
    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)



java.lang.NullPointerException
    at org.sylfra.idea.plugins.remotesynchronizer.utils.ConfigPathsManager.isOutputPath(ConfigPathsManager.java:93)
    at org.sylfra.idea.plugins.remotesynchronizer.ui.tables.AbstractPathTable$RelativePathCellRenderer.getTableCellRendererComponent(AbstractPathTable.java:208)
    at javax.swing.JTable.prepareRenderer(JTable.java:5720)
    at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
    at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
    at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1770)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
    at javax.swing.JComponent.paintComponent(JComponent.java:752)
    at javax.swing.JComponent.paint(JComponent.java:1029)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JViewport.paint(JViewport.java:747)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JViewport.paint(JViewport.java:747)
    at com.intellij.ui.components.JBViewport.paint(JBViewport.java:59)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1491)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1422)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1225)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1780)
    at java.awt.Window.paint(Window.java:3375)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.paint(DialogWrapperPeerImpl.java:840)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:797)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:694)
    at javax.swing.RepaintManager.access$700(RepaintManager.java:41)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1636)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:602)
    at java.awt.EventQueue$1.run(EventQueue.java:600)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:694)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:534)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
    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 com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:709)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:416)
    at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1323)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1308)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.a(ShowSettingsUtilImpl.java:65)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:47)
    at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:63)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:260)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:861)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:119)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:226)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:100)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.a(BegMenuItemUI.java:512)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)
    at java.awt.Component.processMouseEvent(Component.java:6288)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6053)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4651)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4481)
    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:4481)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:602)
    at java.awt.EventQueue$1.run(EventQueue.java:600)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:616)
    at java.awt.EventQueue$2.run(EventQueue.java:614)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:694)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:530)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:416)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374)
    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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.