{"action":"closed","issue":{"url":"https://api.github.com/repos/cucumber/cucumber-eclipse/issues/286","repository_url":"https://api.github.com/repos/cucumber/cucumber-eclipse","labels_url":"https://api.github.com/repos/cucumber/cucumber-eclipse/issues/286/labels{/name}","comments_url":"https://api.github.com/repos/cucumber/cucumber-eclipse/issues/286/comments","events_url":"https://api.github.com/repos/cucumber/cucumber-eclipse/issues/286/events","html_url":"https://github.com/cucumber/cucumber-eclipse/issues/286","id":366221740,"node_id":"MDU6SXNzdWUzNjYyMjE3NDA=","number":286,"title":"F3 - Find Step does not work if the plugin fails to interpret a step definition regex ","user":{"login":"Silverhornet","id":10836941,"node_id":"MDQ6VXNlcjEwODM2OTQx","avatar_url":"https://avatars0.githubusercontent.com/u/10836941?v=4","gravatar_id":"","url":"https://api.github.com/users/Silverhornet","html_url":"https://github.com/Silverhornet","followers_url":"https://api.github.com/users/Silverhornet/followers","following_url":"https://api.github.com/users/Silverhornet/following{/other_user}","gists_url":"https://api.github.com/users/Silverhornet/gists{/gist_id}","starred_url":"https://api.github.com/users/Silverhornet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Silverhornet/subscriptions","organizations_url":"https://api.github.com/users/Silverhornet/orgs","repos_url":"https://api.github.com/users/Silverhornet/repos","events_url":"https://api.github.com/users/Silverhornet/events{/privacy}","received_events_url":"https://api.github.com/users/Silverhornet/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-10-03T08:12:24Z","updated_at":"2018-11-13T16:31:08Z","closed_at":"2018-11-13T16:31:08Z","author_association":"NONE","body":"After upgrading from cucumber plugin version 0.0.16 to 0.0.22, we have consistently experienced that the function Find Step (F3) fails to find the related step definition. After som investigation it has turned out that we get an error when the Cucumber plugin is parsing through our step definitions. The cause seems to be that it is unable to understand Atomic Grouping in the regex e.g. \"(?> sone text)\".\r\n\r\nour work around was to replace (?> sone text) with \"(?: sone text)\" and otherwise splitting up some step definitions.\r\n\r\n**one of our examples:**\r\n`@Given(\"^(?>region|regions) of type (.*) (?>are|is) covering all references$\")\r\n public void cdsAndRoiCoveringAllReferences(String regionTypes) throws Exception {\r\n//do stuff\r\n}`\r\n\r\nResulted in the following error when parsed by the plugin:\r\n\r\n> eclipse.buildId=4.8.0.I20180611-0500\r\njava.version=1.8.0_172\r\njava.vendor=Oracle Corporation\r\nBootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US\r\nFramework arguments:  -product org.eclipse.epp.package.java.product\r\nCommand-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product\r\n\r\n> org.eclipse.ui\r\nError\r\nTue Oct 02 14:38:57 CEST 2018\r\nUnhandled event loop exception\r\n\r\n> java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 6\r\n^(<p>|?>region|regions) of type (.*) (?>are|is) covering all references$\r\n      ^\r\n\tat java.util.regex.Pattern.error(Unknown Source)\r\n\tat java.util.regex.Pattern.sequence(Unknown Source)\r\n\tat java.util.regex.Pattern.expr(Unknown Source)\r\n\tat java.util.regex.Pattern.group0(Unknown Source)\r\n\tat java.util.regex.Pattern.sequence(Unknown Source)\r\n\tat java.util.regex.Pattern.expr(Unknown Source)\r\n\tat java.util.regex.Pattern.compile(Unknown Source)\r\n\tat java.util.regex.Pattern.<init>(Unknown Source)\r\n\tat java.util.regex.Pattern.compile(Unknown Source)\r\n\tat cucumber.eclipse.steps.integration.Step.setText(Step.java:27)\r\n\tat cucumber.eclipse.editor.editors.StepMatcher.matchSteps(StepMatcher.java:83)\r\n\tat cucumber.eclipse.editor.editors.GherkinErrorMarker.validateStep(GherkinErrorMarker.java:250)\r\n\tat cucumber.eclipse.editor.editors.GherkinErrorMarker.matchScenarioOutlineExample(GherkinErrorMarker.java:213)\r\n\tat cucumber.eclipse.editor.editors.GherkinErrorMarker.examples(GherkinErrorMarker.java:111)\r\n\tat gherkin.formatter.model.Examples.replay(Examples.java:56)\r\n\tat gherkin.formatter.model.Examples$Builder.replay(Examples.java:41)\r\n\tat gherkin.parser.FormatterListener.replayStepsOrExamples(FormatterListener.java:151)\r\n\tat gherkin.parser.FormatterListener.scenarioOutline(FormatterListener.java:106)\r\n\tat gherkin.parser.Parser.scenarioOutline(Parser.java:118)\r\n\tat gherkin.lexer.En.scan(En.java:771)\r\n\tat gherkin.lexer.I18nLexer.scan(I18nLexer.java:36)\r\n\tat gherkin.parser.Parser.parse(Parser.java:62)\r\n\tat cucumber.eclipse.editor.editors.Editor.validateAndMark(Editor.java:231)\r\n\tat cucumber.eclipse.editor.editors.Editor.updateGherkinModel(Editor.java:134)\r\n\tat cucumber.eclipse.editor.editors.GherkinReconcilingStrategy$1.run(GherkinReconcilingStrategy.java:48)\r\n\tat org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)\r\n\tat org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)\r\n\tat org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3906)\r\n\tat org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3537)\r\n\tat org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)\r\n\tat org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)\r\n\tat org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059)\r\n\tat org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)\r\n\tat org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)\r\n\tat org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)\r\n\tat org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:597)\r\n\tat org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)\r\n\tat org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)\r\n\tat org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)\r\n\tat org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)\r\n\tat org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)\r\n\tat org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)\r\n\tat org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\r\n\tat java.lang.reflect.Method.invoke(Unknown Source)\r\n\tat org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656)\r\n\tat org.eclipse.equinox.launcher.Main.basicRun(Main.java:592)\r\n\tat org.eclipse.equinox.launcher.Main.run(Main.java:1498)"}}
{"actor":{"display_login":"girijant"}}