Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Eclipse Plugin for the Debug Perspective

Former Member
0 Kudos

Hello,

I try to write an Debugger Plugin for AiE. My Target is, to read some Informations of different Variables (Internal Tables, References etc), match this Infos, and show its in a tree.

But i'm not really successfull.
I read the "Getting started..." Document from: http://scn.sap.com/docs/DOC-59944

and the linked Blogs from Martin Steinberg and Christian Drumm.

But my Problem is a little bit specially, because i want to use my Plug-In in the Debug Perspective...
For Example: When i try the "Hello World" Plugin from Martin Steinberg: http://scn.sap.com/docs/DOC-54728

it works.
I have the "Hello World" Plug-In Project in Eclipse, when i start it, an second Eclipse Instance is starts.

In the Second Eclipse instance i have the new Menu-Button for the Plugin, and can start the plugin. => Everything is okay.

But: When i connect to a Abap Project (in the second eclipse), and start the debugger, the second Eclipse freeze

and hangs up.... Have someone an Idea to solve this Problem?

I think its a Problem of the second Eclipse Instance and ADT.

What i already tried:

When i use not an ABAP Project (in the second eclipse), and use a Java Project, and start the Debugger for Java,
the second Eclipse hangs up too.   => i thought its a generally Eclipse Problem.

BUT: I tried a complete new Eclipse Installation (Without installed ADT), and with this eclipse, i can start my Plug-In Project =>

Second Eclipse Instance starts, and doesn't hang up when i start the Debugger there.

I installed the Eclipse some times again (with and without ADT) and i only have the Problem when ADT is installed.

P.S. I use Luna and the newest ADT-Version.

Have someone an Idea?

Regards

Stefan

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hello,

I found the solution.

My Eclipse (First Eclipse Instance) use the JRE and not the JDK.
In Eclipse you can find the Setting in => Window | Preferences | Java | Installed JREs.


I installed the newest JDK. And switched in Eclipse from JRE to the JDK folder.
Now the second Eclipse can debug on SAP Systems . (without freeze)


Regards

Stefan

7 REPLIES 7

schneidermic0
Advisor
Advisor
0 Kudos

Hi Stefan,

I didn't face such issue so far. But maybe ABAP debugger in both Eclipse sessions is blocking somehow. Could you try to disable ABAP debugger (in your first Eclipse)?

To disable the ABAP debugger for your project process the following steps:

- Select your project in Project Explorer

- Select "Properties" in the context menu

- Open page "ABAP Development > Debug"

- Disable the checkbox "Enable debugger"

Michael

0 Kudos

Hello Michael,

Thank you for the Tip. But in my first Eclipse i doesn't have any ABAP Projects. I only have one "Plug-In Project" for Eclipse.
When i go to Properties in the Project Explorer i doesn't have the option "Abap Development".
This Option is only there, if its an Abap Project.

In the Morning i tried following:
1. New Eclipse Installation (only with Plug-In Environment, WITHOUT ADT).
2. New Eclipse Installation (with ADT) => Debugger Worked.

In my first Eclipse, i can define a "TARGET Eclipse for Plug-Ins". Normaly there is an Reference to the own Eclipse Folder...

I changed the Target to my Second Eclipse Installation (With ADT).

Result: When i start my Plug-In Project a second Eclipse starts.

In the first Eclipse i haven't ADT. In the Second Eclipse i have ADT.

But i have the Problem again. => Debugger in the second Eclipse freeze and hangs up.

Very strange...

Regards

Stefan

0 Kudos

Hi Stefan,

the blocking Eclipse instance can either be caused by a breakpoint (on Java or ABAP side), or a deadlock during startup.  For both cases taking a look at the thread's states is useful:

  1. Start the second instance in debug mode (use the bug symbol in the toolbar, not the run button).
  2. Open "Debug" view in the first instance.  In its tree select the second node form the top (the so called debug target) and hit the Pause button in the toolbar to stop all threads.
  3. Expand all thread nodes below the debug target, then select "Copy Stack" form the context menu on the target.
  4. Paste the text in here.

Regards,

Christian

0 Kudos

Hello Christian,

Thank you for your Help.

Here are the Infors from the Threads.

I Make two Szenarios.

The First Szenario (which you described), the second Eclipse doesn't freeze, because i didn't start

the Debugger in the second Eclipse instance

- Start the second instance in debug mode

- Open "Debug" view in the first instance.

- stop all threads

Here is the Text. (after this Text, have an other scenario with frozen Eclipse..)

org.eclipse.equinox.launcher.Main at localhost:61277 (Suspended)   

    Daemon System Thread [Attach Listener] (Suspended)   

    Daemon System Thread [Signal Dispatcher] (Suspended)   

    Daemon System Thread [Finalizer] (Suspended)   

    Daemon System Thread [Reference Handler] (Suspended)   

    Thread [main] (Suspended)   

    Thread [Active Thread: Equinox Container: e00c9ca1-f382-0014-1b3f-fef59284754b] (Suspended)   

    Daemon Thread [Framework Event Dispatcher: Equinox Container: e00c9ca1-f382-0014-1b3f-fef59284754b] (Suspended)   

    Daemon Thread [Start Level: Equinox Container: e00c9ca1-f382-0014-1b3f-fef59284754b] (Suspended)   

    Daemon Thread [[Timer] - Main Queue Handler] (Suspended)   

    Daemon Thread [Bundle File Closer] (Suspended)   

    Thread [Worker-JM] (Suspended)   

    Daemon Thread [EMF Reference Cleaner] (Suspended)   

    Thread [Worker-0] (Suspended)   

    Thread [Worker-1] (Suspended)   

    Daemon Thread [Java indexing] (Suspended)   

    Daemon Thread [JCoTimeoutChecker] (Suspended)   

    Daemon Thread [EventAdmin Async Event Dispatcher Thread] (Suspended)   

    Thread [Worker-2] (Suspended)   

    Thread [Worker-3] (Suspended)   

    Thread [Worker-4] (Suspended)   

    Thread [Worker-5] (Suspended)   

    Daemon Thread [Support Information Request Listener] (Suspended)   

    Daemon Thread [[ThreadPool Manager] - Idle Thread] (Suspended)   

In the next Scnario, the Eclipse is frozen.

- Start the second Eclipse Instance in debug mode

- Connect to a Abap Project in the second Eclipse

- Set an Breakpoint in Abap Source Code  (Second Eclipse)

- Start the Abap Transaction in the Second Eclipse, and the Breakpoint is reached

    => Second Eclipse Instance freeze.

Here is the Text of the Thread-Stack of the "Freeze-Scenario"

org.eclipse.equinox.launcher.Main at localhost:61344 (Suspended)   

    Daemon System Thread [Attach Listener] (Suspended)   

    Daemon System Thread [Signal Dispatcher] (Suspended)   

    Daemon System Thread [Finalizer] (Suspended)   

    Daemon System Thread [Reference Handler] (Suspended)   

    Thread [main] (Suspended)   

    Thread [Active Thread: Equinox Container: 006266c4-f582-0014-1e7d-8961eb6b05a7] (Suspended)   

    Daemon Thread [Framework Event Dispatcher: Equinox Container: 006266c4-f582-0014-1e7d-8961eb6b05a7] (Suspended)   

    Daemon Thread [Start Level: Equinox Container: 006266c4-f582-0014-1e7d-8961eb6b05a7] (Suspended)   

    Daemon Thread [[Timer] - Main Queue Handler] (Suspended)   

    Daemon Thread [Bundle File Closer] (Suspended)   

    Thread [Worker-JM] (Suspended)   

    Daemon Thread [EMF Reference Cleaner] (Suspended)   

    Thread [Worker-1] (Suspended)   

    Daemon Thread [Java indexing] (Suspended)   

    Daemon Thread [JCoTimeoutChecker] (Suspended)   

    Daemon Thread [EventAdmin Async Event Dispatcher Thread] (Suspended)   

    Thread [Worker-3] (Suspended)   

    Thread [Worker-4] (Suspended)   

    Daemon Thread [Support Information Request Listener] (Suspended)   

    Thread [pool-1-thread-1] (Suspended)   

    Thread [Worker-6] (Suspended)   

    Thread [Worker-7] (Suspended)   

    Thread [Worker-8] (Suspended)   

    Daemon System Thread [Java2D Disposer] (Suspended)   

    Daemon Thread [AWT-Windows] (Suspended)   

    Thread [Worker-10] (Suspended)   

    Daemon Thread [[ThreadPool Manager] - Idle Thread] (Suspended)   

    Daemon Thread [Timer-0] (Suspended)   

    Daemon Thread [Timer-1] (Suspended)   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

Regards

Stefan

0 Kudos

Hi Stefan,

thanks for the data.  However, this doesn't help too much since you dumped the list of threads instead of the stack frames within the threads.  So, as a second try, please expand all nodes one level deeper.  Also, you don't need to send the data for the unproblematic scenario.

Regards,

Christian

0 Kudos

Hey Christian,

Sorry. My mistake...

Here are the stack frames within the threads.

Szenario

- Start Second Eclipse in Debug-Mode

- Connect to a Abap Project in Second Eclipse

- Set Breakpoint in Abap Source-Code (Second Eclipse)
- Start Abap Transaction to reach the Breakpoint => Second Eclipse freeze

- Start Debug Perspective in Frist Eclipse

- Expand All Nodes of the Threads

- Copy Stack:

org.eclipse.equinox.launcher.Main at localhost:58460 (Suspended)   

    Daemon System Thread [Attach Listener] (Suspended)   

    Daemon System Thread [Signal Dispatcher] (Suspended)   

    Daemon System Thread [Finalizer] (Suspended)   

        waiting for: ReferenceQueue$Lock  (id=134)   

        Object.wait(long) line: not available [native method]   

        ReferenceQueue<T>.remove(long) line: not available   

        ReferenceQueue<T>.remove() line: not available   

        Finalizer$FinalizerThread.run() line: not available   

    Daemon System Thread [Reference Handler] (Suspended)   

        waiting for: Reference$Lock  (id=135)   

        Object.wait(long) line: not available [native method]   

        Reference$Lock(Object).wait() line: 503   

        Reference$ReferenceHandler.run() line: not available   

    Thread [main] (Suspended)   

        owns: Class<T> (org.eclipse.swt.graphics.Device) (id=129)   

        ToolBarManagerRenderer.cleanUp(MToolBar) line: 571   

        ToolBarManagerRenderer$9.widgetDisposed(DisposeEvent) line: 447   

        TypedListener.handleEvent(Event) line: 123   

        EventTable.sendEvent(Event) line: 84   

        Display.sendEvent(EventTable, Event) line: 4353   

        ToolBar(Widget).sendEvent(Event) line: 1061   

        ToolBar(Widget).sendEvent(int, Event, boolean) line: 1085   

        ToolBar(Widget).sendEvent(int) line: 1066   

        ToolBar(Widget).release(boolean) line: 816   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        CTabFolder(Composite).releaseChildren(boolean) line: 874   

        CTabFolder(Widget).release(boolean) line: 819   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        Composite.releaseChildren(boolean) line: 874   

        Composite(Widget).release(boolean) line: 819   

        Shell(Composite).releaseChildren(boolean) line: 874   

        Shell(Canvas).releaseChildren(boolean) line: 165   

        Shell(Decorations).releaseChildren(boolean) line: 789   

        Shell.releaseChildren(boolean) line: 1290   

        Shell(Widget).release(boolean) line: 819   

        Shell(Widget).dispose() line: 454   

        Shell(Decorations).dispose() line: 447   

        Shell.dispose() line: 715   

        Display.release() line: 3811   

        Display(Device).dispose() line: 295   

        IDEApplication.start(IApplicationContext) line: 151   

        EclipseAppHandle.run(Object) line: 196   

        EclipseAppLauncher.runApplication(Object) line: 134   

        EclipseAppLauncher.start(Object) line: 104   

        EclipseStarter.run(Object) line: 380   

        EclipseStarter.run(String[], Runnable) line: 235   

        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]   

        NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available   

        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available   

        Method.invoke(Object, Object...) line: not available   

        Main.invokeFramework(String[], URL[]) line: 648   

        Main.basicRun(String[]) line: 603   

        Main.run(String[]) line: 1465   

        Main.main(String[]) line: 1438   

    Thread [Active Thread: Equinox Container: 5007ce27-3e84-0014-101b-dd8a3d6da6c6] (Suspended)   

        Unsafe.park(boolean, long) line: not available [native method]   

        LockSupport.parkNanos(Object, long) line: not available   

        AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) line: not available   

        ScheduledThreadPoolExecutor$DelayedWorkQueue.take() line: not available   

        ScheduledThreadPoolExecutor$DelayedWorkQueue.take() line: not available   

        ScheduledThreadPoolExecutor(ThreadPoolExecutor).getTask() line: not available   

        ScheduledThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: not available   

        ThreadPoolExecutor$Worker.run() line: not available   

        Thread.run() line: not available   

    Daemon Thread [Framework Event Dispatcher: Equinox Container: 5007ce27-3e84-0014-101b-dd8a3d6da6c6] (Suspended)   

        waiting for: EventManager$EventThread<K,V,E>  (id=20)   

        Object.wait(long) line: not available [native method]   

        EventManager$EventThread<K,V,E>(Object).wait() line: 503   

        EventManager$EventThread<K,V,E>.getNextEvent() line: 400   

        EventManager$EventThread<K,V,E>.run() line: 336   

    Daemon Thread [Start Level: Equinox Container: 5007ce27-3e84-0014-101b-dd8a3d6da6c6] (Suspended)   

        waiting for: EventManager$EventThread<K,V,E>  (id=22)   

        Object.wait(long) line: not available [native method]   

        EventManager$EventThread<K,V,E>(Object).wait() line: 503   

        EventManager$EventThread<K,V,E>.getNextEvent() line: 400   

        EventManager$EventThread<K,V,E>.run() line: 336   

    Daemon Thread [[Timer] - Main Queue Handler] (Suspended)   

        owns: Object[][]  (id=127)   

        owns: TimerQueue  (id=128)   

        ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method]   

        EquinoxClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: not available   

        EquinoxClassLoader(ModuleClassLoader).defineClass(String, byte[], ClasspathEntry) line: 272   

        ClasspathManager.defineClass(String, byte[], ClasspathEntry, BundleEntry, List<ClassLoaderHook>) line: 632   

        ClasspathManager.findClassImpl(String, ClasspathEntry, List<ClassLoaderHook>) line: 588   

        ClasspathManager.findLocalClassImpl(String, List<ClassLoaderHook>) line: 540   

        ClasspathManager.findLocalClass(String) line: 527   

        EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324   

        BundleLoader.findLocalClass(String) line: 320   

        BundleLoader.findClassInternal(String, boolean) line: 395   

        BundleLoader.findClass(String, boolean) line: 345   

        BundleLoader.findClass(String) line: 337   

        EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160   

        EquinoxClassLoader(ClassLoader).loadClass(String) line: not available   

        ThreadPoolManagerImpl.getInstance() line: 88   

        ThreadPoolManagerImpl(ObjectPool).getObject() line: 156   

        ThreadPoolManagerImpl.getObject() line: 97   

        ThreadPoolManagerImpl.execute(Runnable, int, String, ThreadPoolFactoryImpl, AccessControlContext) line: 203   

        ThreadPoolFactoryImpl.execute0(Runnable, int, String, AccessControlContext) line: 112   

        TimerImpl.run() line: 110   

        Thread.run() line: not available   

    Daemon Thread [Bundle File Closer] (Suspended)   

        waiting for: EventManager$EventThread<K,V,E>  (id=25)   

        Object.wait(long) line: not available [native method]   

        EventManager$EventThread<K,V,E>(Object).wait() line: 503   

        EventManager$EventThread<K,V,E>.getNextEvent() line: 400   

        EventManager$EventThread<K,V,E>.run() line: 336   

    Thread [Worker-JM] (Suspended)   

        waiting for: ArrayList<E>  (id=122)   

        Object.wait(long) line: not available [native method]   

        InternalWorker.run() line: 59   

    Daemon Thread [EMF Reference Cleaner] (Suspended)   

        waiting for: ReferenceQueue$Lock  (id=125)   

        Object.wait(long) line: not available [native method]   

        ReferenceQueue<T>.remove(long) line: not available   

        ReferenceQueue<T>.remove() line: not available   

        CommonUtil$1ReferenceClearingQueuePollingThread.run() line: 70   

    Thread [Worker-0] (Suspended)   

        ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method]   

        EquinoxClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: not available   

        EquinoxClassLoader(ModuleClassLoader).defineClass(String, byte[], ClasspathEntry) line: 272   

        ClasspathManager.defineClass(String, byte[], ClasspathEntry, BundleEntry, List<ClassLoaderHook>) line: 632   

        ClasspathManager.findClassImpl(String, ClasspathEntry, List<ClassLoaderHook>) line: 588   

        ClasspathManager.findLocalClassImpl(String, List<ClassLoaderHook>) line: 540   

        ClasspathManager.findLocalClass(String) line: 527   

        EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324   

        BundleLoader.findLocalClass(String) line: 320   

        SingleSourcePackage.loadClass(String) line: 36   

        BundleLoader.findClassInternal(String, boolean) line: 391   

        BundleLoader.findClass(String, boolean) line: 345   

        BundleLoader.findClass(String) line: 337   

        EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160   

        EquinoxClassLoader(ClassLoader).loadClass(String) line: not available   

        ActivityContextManager.processWorkbenchEvent(String, String, String, long, long) line: 193   

        ActivityContextManager.addMonitoredActivityTime(long, long) line: 181   

        ActivityContextManager.access$0(ActivityContextManager, long, long) line: 165   

        ActivityContextManager$2.addMonitoredActivityTime(long, long) line: 80   

        CheckActivityJob.run(IProgressMonitor) line: 125   

        Worker.run() line: 54   

    Thread [Worker-1] (Suspended)   

        Unsafe.park(boolean, long) line: not available [native method]   

        LockSupport.park(Object) line: not available   

        AbstractQueuedSynchronizer$ConditionObject.await() line: not available   

        LinkedBlockingQueue<E>.take() line: not available   

        WinGuiCommandQueue.run(IProgressMonitor) line: 45   

        Worker.run() line: 54   

    Daemon Thread [Java indexing] (Suspended)   

        waiting for: IndexManager  (id=133)   

        Object.wait(long) line: not available [native method]   

        IndexManager(Object).wait() line: 503   

        IndexManager(JobManager).run() line: 382   

        Thread.run() line: not available   

    Daemon Thread [JCoTimeoutChecker] (Suspended)   

        waiting for: ArrayList<E>  (id=126)   

        Object.wait(long) line: not available [native method]   

        AutoJobRunner.run() line: 123   

        Thread.run() line: not available   

    Daemon Thread [EventAdmin Async Event Dispatcher Thread] (Suspended)   

        waiting for: RunnableLock  (id=130)   

        Object.wait(long) line: not available [native method]   

        RunnableLock(Object).wait() line: 503   

        UISynchronizer(Synchronizer).syncExec(Runnable) line: 200   

        UISynchronizer.syncExec(Runnable) line: 156   

        Display.syncExec(Runnable) line: 4734   

        E4Application$1.syncExec(Runnable) line: 218   

        UIEventObjectSupplier$UIEventHandler.handleEvent(Event) line: 53   

        EventHandlerWrapper.handleEvent(Event, Permission) line: 197   

        EventHandlerTracker.dispatchEvent(EventHandlerWrapper, Permission, int, Event) line: 197   

        EventHandlerTracker.dispatchEvent(Object, Object, int, Object) line: 1   

        EventManager.dispatchEvent(Set<Entry<K,V>>, EventDispatcher<K,V,E>, int, E) line: 230   

        EventManager$EventThread<K,V,E>.run() line: 340   

    Thread [Worker-2] (Suspended)   

        waiting for: WorkerPool  (id=117)   

        Object.wait(long) line: not available [native method]   

        WorkerPool.sleep(long) line: 188   

        WorkerPool.startJob(Worker) line: 220   

        Worker.run() line: 51   

    Thread [Worker-3] (Suspended)   

        waiting for: WorkerPool  (id=117)   

        Object.wait(long) line: not available [native method]   

        WorkerPool.sleep(long) line: 188   

        WorkerPool.startJob(Worker) line: 220   

        Worker.run() line: 51   

    Thread [Worker-4] (Suspended)   

        owns: BufferedInputStream  (id=118)   

        FileInputStream.readBytes(byte[], int, int) line: not available [native method]   

        FileInputStream.read(byte[], int, int) line: not available   

        BufferedInputStream.fill() line: not available   

        BufferedInputStream.read1(byte[], int, int) line: not available   

        BufferedInputStream.read(byte[], int, int) line: not available   

        BufferedInputStream(FilterInputStream).read(byte[]) line: not available   

        WinGuiServerProxy$ConsoleLogJob.run(IProgressMonitor) line: 708   

        Worker.run() line: 54   

    Thread [Worker-5] (Suspended)   

        owns: RfcTypeDirectCpic  (id=121)   

        CpicDriver.nativeCpic_coxread(byte[], int, byte[], int[]) line: not available [native method]   

        RfcTypeDirectCpic(CpicDriver).cpic_coxread(int, byte[], int[]) line: 594   

        RfcTypeDirectCpic(CpicDriver).coxread(byte[], int, int[], int) line: 169   

        RfcTypeDirectCpic.read(byte[], int, int[]) line: 55   

        RfcIoOpenCntl.ab_rfcread(byte[], int, int) line: 663   

        RfcGet.rfcget_gethead(RfcIoOpenCntl, byte[]) line: 431   

        RfcGet.ab_rfcget(RfcIoOpenCntl, RfcGet$RfcGetState, RfcGetInfo) line: 35   

        RfcRcv.ab_rfcreceive(RfcIoOpenCntl, IRfcParameter[], IRfcParameter[], IRfcParameter[], IRfcTable[], JCoRepository) line: 33   

        RfcIoOpenCntl.RfcReceive(IRfcParameter[], IRfcParameter[], IRfcTable[], JCoRepository) line: 1929   

        MiddlewareJavaRfc$JavaRfcClient.execute(ClientConnection, String, DefaultParameterList, DefaultParameterList, DefaultParameterList, DefaultParameterList, boolean, AbapClassException$Mode) line: 1770   

        ClientConnection.execute(String, DefaultParameterList, DefaultParameterList, DefaultParameterList, DefaultParameterList, boolean, AbapClassException$Mode) line: 1095   

        ClientConnection.execute(JCoFunction, String, String, JCoRepository) line: 928   

        RfcDestination.execute(AbapFunction, String, String) line: 1460   

        RfcDestination.execute(AbapFunction) line: 1430   

        AbapFunction.execute(JCoDestination) line: 288   

        JCoFunctionExecutor$1$1.call() line: 229   

        JCoFunctionExecutor$1$1.call() line: 1   

        Registry.runWithPassportManager(Callable<V>, ClientPassportManager) line: 86   

        JCoFunctionExecutor$1.execute(JCoFunction, JCoDestination, Map<String,Object>, IJCoRequestDispatcherProtocolStrategy) line: 225   

        JCoFunctionExecutor.runInternal(IProgressMonitor) line: 142   

        JCoFunctionExecutor(CancelableBlockingJob$BlockingJob).run(IProgressMonitor) line: 195   

        Worker.run() line: 54   

    Thread [Worker-6] (Suspended)   

        WinGuiPipeTools.readPipeXmlInternal(long) line: not available [native method]   

        WinGuiPipeTools.readPipeXml(long) line: 50   

        WinGuiEventResponseQueue.readEventPipe() line: 210   

        WinGuiEventResponseQueue.run(IProgressMonitor) line: 95   

        Worker.run() line: 54   

    Thread [Worker-8] (Suspended)   

        waiting for: JCoFunctionExecutor  (id=119)   

        Object.wait(long) line: not available [native method]   

        CancelableBlockingJob.run(IProgressMonitor) line: 132   

        JCoRequestDispatcher.dispatch(IProgressMonitor, IRequest, ISystemSession, Map<String,Object>) line: 138   

        StatelessSystemSession(SystemSession).sendRequest(IProgressMonitor, IRequest) line: 168   

        RestResource.invoke(IProgressMonitor, Method, IHeaders, Class<T>, Object, IQueryParameter[]) line: 162   

        RestResource.post(IProgressMonitor, Class<T>, Object, IQueryParameter...) line: 82   

        AbapDebuggerServices.post(IRestResource, Class<T>, List<IQueryParameter>, IProgressMonitor) line: 515   

        AbapDebuggerServices.waitForDebuggeeSessions(int, IProgressMonitor) line: 458   

        AutoAttachBackendListener.attachWaitingDebuggees(String, AttachListenerKey, IProgressMonitor) line: 471   

        AutoAttachBackendListener.access$2(AutoAttachBackendListener, String, AttachListenerKey, IProgressMonitor) line: 460   

        AutoAttachBackendListener$AutoAttachJob.run(IProgressMonitor) line: 669   

        Worker.run() line: 54   

    Thread [Worker-7] (Suspended)   

        FileInputStream.readBytes(byte[], int, int) line: not available [native method]   

        FileInputStream.read(byte[]) line: not available   

        WinGuiServerProxy$ConsoleLogJob.run(IProgressMonitor) line: 708   

        Worker.run() line: 54   

    Daemon Thread [Support Information Request Listener] (Suspended)   

        Thread.sleep(long) line: not available [native method]   

        StartupHandler$SupportInformationRequestListener.run() line: 99   

        Thread.run() line: not available   

    Thread [pool-1-thread-1] (Suspended)   

        Unsafe.park(boolean, long) line: not available [native method]   

        LockSupport.park(Object) line: not available   

        AbstractQueuedSynchronizer$ConditionObject.await() line: not available   

        LinkedBlockingQueue<E>.take() line: not available   

        ThreadPoolExecutor.getTask() line: not available   

        ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available   

        ThreadPoolExecutor$Worker.run() line: not available   

        Thread.run() line: not available   

    Daemon System Thread [Java2D Disposer] (Suspended)   

        waiting for: ReferenceQueue$Lock  (id=136)   

        Object.wait(long) line: not available [native method]   

        ReferenceQueue<T>.remove(long) line: not available   

        ReferenceQueue<T>.remove() line: not available   

        Disposer.run() line: not available   

        Thread.run() line: not available   

    Daemon Thread [AWT-Windows] (Suspended)   

        WToolkit.eventLoop() line: not available [native method]   

        WToolkit.run() line: not available   

        Thread.run() line: not available   

    Thread [Worker-9] (Suspended)   

        waiting for: WorkerPool  (id=117)   

        Object.wait(long) line: not available [native method]   

        WorkerPool.sleep(long) line: 188   

        WorkerPool.startJob(Worker) line: 220   

        Worker.run() line: 51   

   Thread [Worker-10] (Suspended (exception OutOfMemoryError))   

        Worker.run() line: 82   

    Thread [Worker-11] (Suspended)   

        waiting for: Semaphore  (id=123)   

        Object.wait(long) line: not available [native method]   

        Semaphore.acquire(long) line: 43   

        UISynchronizer.syncExec(Runnable) line: 175   

        Display.syncExec(Runnable) line: 4734   

        AbapSourceViewerConfiguration$AbapRndPresentationReconciler(RndPresentationReconciler).getVisibleEditorRegionAndDocumentTimestamp(IRegion[], long[]) line: 308   

        AbapSourceViewerConfiguration$AbapRndPresentationReconciler.access$0(AbapSourceViewerConfiguration$AbapRndPresentationReconciler, IRegion[], long[]) line: 1   

        AbapSourceViewerConfiguration$AbapRndPresentationReconciler$1.run(IProgressMonitor) line: 591   

        Worker.run() line: 54   

    Daemon Thread [Timer-0] (Suspended)   

        waiting for: TaskQueue  (id=120)   

        Object.wait(long) line: not available [native method]   

        TaskQueue(Object).wait() line: 503   

        TimerThread.mainLoop() line: not available   

        TimerThread.run() line: not available   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

        waiting for: DirtyRegionQueue  (id=132)   

        Object.wait(long) line: not available [native method]   

        AbstractReconciler$BackgroundThread.run() line: 179   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

        waiting for: DirtyRegionQueue  (id=131)   

        Object.wait(long) line: not available [native method]   

        AbstractReconciler$BackgroundThread.run() line: 179   

    Daemon Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended)   

        waiting for: DirtyRegionQueue  (id=124)   

        Object.wait(long) line: not available [native method]   

        AbstractReconciler$BackgroundThread.run() line: 179   

Additionally Info: The First Eclipse opens a new View, and in the Stack-Frame, i see that one Thread has an "OutOfMemoryException" (i marked this info bold in the Stack above)

Regards Stefan

Former Member
0 Kudos

Hello,

I found the solution.

My Eclipse (First Eclipse Instance) use the JRE and not the JDK.
In Eclipse you can find the Setting in => Window | Preferences | Java | Installed JREs.


I installed the newest JDK. And switched in Eclipse from JRE to the JDK folder.
Now the second Eclipse can debug on SAP Systems . (without freeze)


Regards

Stefan