However I noticed that I can view the build.gradle file but I can not save the changes into file.
It seems that the editor accepts keyboard inputs as changes, I can Ctrl+S, but when I close the editor, it silently ignores all the changes I made. I got surprised when I reopen the file to find my changes are gone.
Is it possible to enable editors to save changes to the files which are not under KS’s control?
If you intentionally prohibit saving changes, then I would prefer editors to reject all keyboard input to files.
I just tried to reproduce your issue: I create a readme.md inside Test Explorer and edit it, but the changes are saved upon hitting Ctrl + S. Can you confirm this issue really exists and can be consistently reproduced ? If so send us the log file so we can look deeper. A possibility may be something to do with write permission, just a thought.
I noticed that the build.gradle file is opened with syntax highlighted. This means KS opened the build.gradle file using sophisticated Groovy Editor, not a plain text editor. I guess that the Groovy editor in Katalon Studio is specially tailored (when saving changes, it does syntax checking and invokes AST transformation etc …). Therefore you need to be a bit more careful for it.
I confirmed that I can edit and save README.md with no problem.
in the .metadata/.log file I found the following stack trace.
!ENTRY org.eclipse.equinox.event 4 0 2019-05-16 16:24:24.324
!MESSAGE Exception while dispatching event org.osgi.service.event.Event [topic=EDITORS_SAVED] {org.eclipse.e4.data=org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@3726fc3b (elementId: org.eclipse.e4.ui.compatibility.editor, tags: [Editor, org.codehaus.groovy.eclipse.editor.GroovyEditor, removeOnHide, active], contributorURI: null) (widget: ContributedPartRenderer$2 {*Wrong Thread*}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@5dc120ab, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (contributionURI: bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor, object: org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor@2a742ee4, context: PartImpl (org.eclipse.e4.ui.compatibility.editor) Context, variables: [], label: build.gradle, iconURI: platform:/plugin/org.codehaus.groovy.eclipse.ui/icons/groovy_file.gif, tooltip: null, dirty: false, closeable: true, description: null)} to handler org.eclipse.e4.ui.services.internal.events.UIEventHandler@6cf48cf4
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ClassCastException: org.eclipse.ui.ide.FileStoreEditorInput cannot be cast to org.eclipse.ui.part.FileEditorInput)
at org.eclipse.swt.SWT.error(SWT.java:4533)
at org.eclipse.swt.SWT.error(SWT.java:4448)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:255)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4821)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: java.lang.ClassCastException: org.eclipse.ui.ide.FileStoreEditorInput cannot be cast to org.eclipse.ui.part.FileEditorInput
at com.kms.katalon.composer.keyword.handlers.EditorSavedHandler.handleEvent(EditorSavedHandler.java:55)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at com.kms.katalon.core.application.Application.internalRunGUI(Application.java:123)
at com.kms.katalon.core.application.Application.runGUI(Application.java:113)
at com.kms.katalon.core.application.Application.start(Application.java:71)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
Unexpected error on checking Groovy Nature
Unexpected error on checking Groovy Nature
Unexpected error on checking Groovy Nature
Unexpected error on checking Groovy Nature
Unexpected error on checking Groovy Nature
How to import Eclipse Java project with Selenium webdriver test cases in to the Katalon Studio? I have a requirement that old team developed the full project in Eclipse Java and now i want to use the Katalon. Please help me on this.
As far as I see, there is no easy way to migrate WebDriver-based tests written in Java into Katalon Studio. You need to rewrite them completely in Katalon way.
I would recommend you to stay on Eclipse for the already-accomplished test project as is. And you can develop a new testing project using Katalon Studio.