IllegalArgumentException when opening source file
Migrated from http://lampsvn.epfl.ch/trac/scala/ticket/629
Reporter pradel
Error opening the Scala editor (using Eclipse 3.3.1.1 and the nightly plugin build from March 12):
java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Matcher.java:706)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2000)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.buildInfo(Plugin.scala:90)
at scala.tools.eclipse.Driver$Project$File.buildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.checkBuildInfo(Plugin.scala:83)
at scala.tools.eclipse.Driver$Project$File.checkBuildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:164)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:159)
at scala.collection.Map$class.apply(Map.scala:80)
at scala.collection.jcl.LinkedHashMap.apply(LinkedHashMap.scala:18)
at lampion.eclipse.Plugin$ProjectImpl$class.fileSafe(Plugin.scala:170)
at scala.tools.eclipse.Driver$Project.fileSafe(Driver.scala:10)
at lampion.eclipse.Plugin$class.fileFor(Plugin.scala:257)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.UIPlugin$class.fileFor(UIPlugin.scala:461)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.Editor$$anon$1.load(Editor.scala:270)
at lampion.eclipse.SourceViewer.inputDocumentChanged(SourceViewer.scala:142)
at org.eclipse.jface.text.TextViewer.fireInputDocumentChanged(TextViewer.java:2685)
at org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2734)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:518)
at org.eclipse.jface.text.source.projection.ProjectionViewer.setDocument(ProjectionViewer.java:370)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:473)
at org.eclipse.ui.texteditor.AbstractTextEditor.initializeSourceViewer(AbstractTextEditor.java:3786)
at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3332)
at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:53)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:378)
at lampion.eclipse.Editor.createPartControl(Editor.scala:148)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:263)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1405)
at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:939)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:801)
at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
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:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Reporter pradel
Error opening the Scala editor (using Eclipse 3.3.1.1 and the nightly plugin build from March 12):
java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Matcher.java:706)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2000)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.buildInfo(Plugin.scala:90)
at scala.tools.eclipse.Driver$Project$File.buildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.checkBuildInfo(Plugin.scala:83)
at scala.tools.eclipse.Driver$Project$File.checkBuildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:164)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:159)
at scala.collection.Map$class.apply(Map.scala:80)
at scala.collection.jcl.LinkedHashMap.apply(LinkedHashMap.scala:18)
at lampion.eclipse.Plugin$ProjectImpl$class.fileSafe(Plugin.scala:170)
at scala.tools.eclipse.Driver$Project.fileSafe(Driver.scala:10)
at lampion.eclipse.Plugin$class.fileFor(Plugin.scala:257)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.UIPlugin$class.fileFor(UIPlugin.scala:461)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.Editor$$anon$1.load(Editor.scala:270)
at lampion.eclipse.SourceViewer.inputDocumentChanged(SourceViewer.scala:142)
at org.eclipse.jface.text.TextViewer.fireInputDocumentChanged(TextViewer.java:2685)
at org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2734)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:518)
at org.eclipse.jface.text.source.projection.ProjectionViewer.setDocument(ProjectionViewer.java:370)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:473)
at org.eclipse.ui.texteditor.AbstractTextEditor.initializeSourceViewer(AbstractTextEditor.java:3786)
at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3332)
at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:53)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:378)
at lampion.eclipse.Editor.createPartControl(Editor.scala:148)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:263)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1405)
at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:939)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:801)
at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
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:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Leave a comment
Trac author: mcdirmid
I don't really know how to reproduce this as the bug report doesn't talk about what version of the JVM they are running on (looks like a bug in String.replaceAll?). At anyrate, I replaced the call from replaceAll to a simple while loop to prevent future problems.
I don't really know how to reproduce this as the bug report doesn't talk about what version of the JVM they are running on (looks like a bug in String.replaceAll?). At anyrate, I replaced the call from replaceAll to a simple while loop to prevent future problems.
Trac author: hvkhut
I get this too using the just released version. What I did was I installed new Eclipse. Then I set the workspace to what I was using with old Eclipse/plugin. Installed the new plugin, restarted Eclipse. The plugin worked with the default chosen file of those what were in the current project. I tried to create a run configuration, but the plugin couldn't find the main class (is it because I have object Main, which has def main. I also tried to extend Application and override, but didn't work. Anyway, after this I tried to change the source file from the left navigation. And I got what is below. After that I got the same error even when restarting Eclipse.
Thanks for the hard work, and hope you get things working! :)
I get this too using the just released version. What I did was I installed new Eclipse. Then I set the workspace to what I was using with old Eclipse/plugin. Installed the new plugin, restarted Eclipse. The plugin worked with the default chosen file of those what were in the current project. I tried to create a run configuration, but the plugin couldn't find the main class (is it because I have object Main, which has def main. I also tried to extend Application and override, but didn't work. Anyway, after this I tried to change the source file from the left navigation. And I got what is below. After that I got the same error even when restarting Eclipse.
Thanks for the hard work, and hope you get things working! :)
java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.buildInfo(Plugin.scala:90)
at scala.tools.eclipse.Driver$Project$File.buildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$FileImpl$class.checkBuildInfo(Plugin.scala:83)
at scala.tools.eclipse.Driver$Project$File.checkBuildInfo(Driver.scala:13)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:164)
at lampion.eclipse.Plugin$ProjectImpl$$anon$2.default(Plugin.scala:159)
at scala.collection.Map$class.apply(Map.scala:80)
at scala.collection.jcl.LinkedHashMap.apply(LinkedHashMap.scala:18)
at lampion.eclipse.Plugin$ProjectImpl$class.fileSafe(Plugin.scala:170)
at scala.tools.eclipse.Driver$Project.fileSafe(Driver.scala:10)
at lampion.eclipse.Plugin$class.fileFor(Plugin.scala:257)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.UIPlugin$class.fileFor(UIPlugin.scala:461)
at scala.tools.eclipse.Driver.fileFor(Driver.scala:7)
at lampion.eclipse.Editor$$anon$1.load(Editor.scala:270)
at lampion.eclipse.SourceViewer.inputDocumentChanged(SourceViewer.scala:142)
at org.eclipse.jface.text.TextViewer.fireInputDocumentChanged(TextViewer.java:2685)
at org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2734)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:518)
at org.eclipse.jface.text.source.projection.ProjectionViewer.setDocument(ProjectionViewer.java:370)
at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:473)
at org.eclipse.ui.texteditor.AbstractTextEditor.initializeSourceViewer(AbstractTextEditor.java:3796)
at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3341)
at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:53)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:378)
at lampion.eclipse.Editor.createPartControl(Editor.scala:148)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:263)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2739)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2651)
at org.eclipse.ui.internal.WorkbenchPage.access$13(WorkbenchPage.java:2643)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2595)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2590)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2574)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2565)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:286)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:194)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:175)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:268)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:244)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:316)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$5.open(PackageExplorerPart.java:613)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
on 2008-03-16 05:13 *
By tracImporter
Trac author: hvkhut
Is it possible that the fix for this ticket (replace all taken away) wasn't included in the newest release, because now that I looked at it, the error messages are exactly the same?
Is it possible that the fix for this ticket (replace all taken away) wasn't included in the newest release, because now that I looked at it, the error messages are exactly the same?
on 2008-03-16 19:44 *
By tracImporter
Trac author: pradel
Right, I forgot to mention the JDK version. The bug occurs with versions 1.5.0_15 as well as with 1.6.0._05 (the latest stable versions for 1.5 and 1.6).
Right, I forgot to mention the JDK version. The bug occurs with versions 1.5.0_15 as well as with 1.6.0._05 (the latest stable versions for 1.5 and 1.6).
on 2008-03-16 21:38 *
By tracImporter
Trac author: harrah
The documentation for String.replaceAll says that invoking
Matcher.replaceAll In any case, Sean's change should fix the issue.
The documentation for String.replaceAll says that invoking
str.replaceAll(regex, repl)
is equivalent toPattern.compile(regex).matcher(str).replaceAll(repl)
If you look at Matcher.replaceAll
(or the 1.6 documentation for String.replaceAll
, which now explicitly indicates this), it says "Dollar signs may be treated as references to captured subsequences ...", so you need the following if you want to use replaceAll
:replaceAll("/", java.util.regex.Matcher.quoteReplacement("_$_"))
For future reference, backslashes are also treated specially and need escaping:Matcher.replaceAll In any case, Sean's change should fix the issue.
Trac author: pradel
What triggered the bug now works fine. So I assume it's fixed.
What triggered the bug now works fine. So I assume it's fixed.
on 2009-01-14 14:54 *
By tracImporter
Closed As: fixed