Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 311120 - Breakpoints totally hosed due to: Unable to create view ID org.eclipse.debug.ui.BreakpointView: Illegal/unsupported escape sequence near index 6Build\CheckPropertiesFiles
Summary: Breakpoints totally hosed due to: Unable to create view ID org.eclipse.debug....
Status: RESOLVED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 3.5.2   Edit
Hardware: PC Windows 7
: P3 major (vote)
Target Milestone: 3.6 RC1   Edit
Assignee: JDT-Debug-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-29 17:47 EDT by Dave Jenkins CLA
Modified: 2010-05-04 12:17 EDT (History)
3 users (show)

See Also:
Michael_Rennie: review+


Attachments
patch (5.34 KB, patch)
2010-05-04 11:31 EDT, Darin Wright CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Jenkins CLA 2010-04-29 17:47:59 EDT
Build Identifier: Build id: M20100211-1343

eclipse.buildId=M20100211-1343
java.version=1.6.0_16
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86_64


Error
Thu Apr 29 16:26:49 EDT 2010
Unable to create view ID org.eclipse.debug.ui.BreakpointView: Illegal/unsupported escape sequence near index 6Build\CheckPropertiesFiles
^

java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 6
Build\CheckPropertiesFiles
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.escape(Unknown Source)
at java.util.regex.Pattern.atom(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaMethodBreakpoint.setMarker(JavaMethodBreakpoint.java:557)
at org.eclipse.debug.internal.core.BreakpointManager.createBreakpoint(BreakpointManager.java:533)
at org.eclipse.debug.internal.core.BreakpointManager.loadBreakpoints(BreakpointManager.java:267)
at org.eclipse.debug.internal.core.BreakpointManager.initializeBreakpoints(BreakpointManager.java:434)
at org.eclipse.debug.internal.core.BreakpointManager.getBreakpoints0(BreakpointManager.java:403)
at org.eclipse.debug.internal.core.BreakpointManager.getBreakpoints(BreakpointManager.java:388)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsContentProvider.reorganize(BreakpointsContentProvider.java:176)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsContentProvider.inputChanged(BreakpointsContentProvider.java:86)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:270)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1634)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.createViewer(BreakpointsView.java:149)
at org.eclipse.debug.ui.AbstractDebugView$ViewerPage.createControl(AbstractDebugView.java:270)
at org.eclipse.debug.ui.AbstractDebugView.createDefaultPage(AbstractDebugView.java:358)
at org.eclipse.ui.part.PageBookView.createPartControl(PageBookView.java:483)
at org.eclipse.debug.ui.AbstractDebugView.createPartControl(AbstractDebugView.java:319)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.createPartControl(BreakpointsView.java:134)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:367)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:529)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:668)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272)
at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:982)
at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2626)
at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:2965)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2946)
at org.eclipse.ui.internal.WorkbenchWindow$21.runWithException(WorkbenchWindow.java:2263)
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:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384)
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:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)




Reproducible: Always

Steps to Reproduce:
According to the error log:
1. Experience a workspace crash
2. Get assorted errors including "Unhandled event loop exception" and "An internal error occurred during: "Initialize Java Debug Options"."
3. Then get the error reported in Details and never be able to use breakpoints again.

I have searched exhaustively to try and find the file containing the offending string... to no avail.
Comment 1 Remy Suen CLA 2010-04-29 17:54:51 EDT
Problems with setting Java breakpoints goes to the Debug team.
Comment 2 Darin Wright CLA 2010-04-29 22:02:31 EDT
Looks like a method breakpoint is causing trouble. You might try to delete the .markers file from the associated projects directory in the ".metadata/.plugins/.org.eclipse.core.resources/.projects" directory of your workspace. (If you know what project(s) you have method breakpoints in).
Comment 3 Darin Wright CLA 2010-04-30 10:53:58 EDT
However, we should be catching the PatternSyntaxException to avoid this, and throwing a CoreException, which will be caught and handled by the framework. The framework should probably delete the markers for which breakpoints could not be re-created.
Comment 4 Dave Jenkins CLA 2010-05-03 10:03:20 EDT
(In reply to comment #2)
> You might try to delete the .markers file from the associated projects
> directory in the ".metadata/.plugins/.org.eclipse.core.resources/.projects"
> directory of your workspace.
Deleting the .markers file does seem to have restored my breakpoint capabilities!!  Thanks!!
Comment 5 Darin Wright CLA 2010-05-04 11:31:15 EDT
Created attachment 166970 [details]
patch
Comment 6 Darin Wright CLA 2010-05-04 11:38:10 EDT
Please review, Mike.
Comment 7 Michael Rennie CLA 2010-05-04 12:17:17 EDT
Patch looks good. Applied to HEAD

To reproduce the exception:

1. create a method breakpoint
2. export it
3. edit the *.bkpt replacing a '.' with a '\'
4. try to import the *.bkpt file

happens:

Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 13
org\.eclipse\jdt\.internal\.debug\.core\.hcr\.JavaHotCodeReplaceManager
             ^
	at java.util.regex.Pattern.error(Pattern.java:1730)
	at java.util.regex.Pattern.escape(Pattern.java:2194)
	at java.util.regex.Pattern.atom(Pattern.java:1969)
	at java.util.regex.Pattern.sequence(Pattern.java:1902)
	at java.util.regex.Pattern.expr(Pattern.java:1769)
	at java.util.regex.Pattern.compile(Pattern.java:1477)
	at java.util.regex.Pattern.<init>(Pattern.java:1150)
	at java.util.regex.Pattern.compile(Pattern.java:840)
	at org.eclipse.jdt.internal.debug.core.breakpoints.JavaMethodBreakpoint.setMarker(JavaMethodBreakpoint.java:557)
	at org.eclipse.debug.internal.core.BreakpointManager.createBreakpoint(BreakpointManager.java:528)
	at org.eclipse.debug.ui.actions.ImportBreakpointsOperation.restoreBreakpoint(ImportBreakpointsOperation.java:296)
	at org.eclipse.debug.ui.actions.ImportBreakpointsOperation.run(ImportBreakpointsOperation.java:150)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
	... 44 more