The Code Review application: Unexpected concurrency error with Windows console

Technote (troubleshooting)


Problem(Abstract)

When you run the code review application from the Microsoft™ Windows™ console, an unexpected concurrency error can occur in the application, if you are running it multiple times, and if you are running it directly from the command line, rather than from within a script started from the command line. In Linux™ a similar type of concurrency error is possible but is less likely to occur. To avoid such errors, run the code review application from within a script rather than directly from the command line. Sample Linux and Windows scripts are provided with the product.

Resolving the problem

The online help warns against running concurrent instances of the code review application:

"Note: Before you run the code review application:
-- Close any open Eclipse workspaces.
-- Allow any running instances of the code review application to run to completion."

If a new instance of the code review application is invoked while another instance is still running, the following events typically occur:
a) The new instance ends without completing its work.
b) The following error message is displayed on the command line and is written to the Eclipse error log:
-- LanguageManager#startUp() - failed to create class:
-- com.ibm.ftt.language.jcl.core.JCLLanguage
c) The following error information is written to the Eclipse error log:
-- !ENTRY org.eclipse.osgi 4 0 2012-10-18 11:31:54.046
-- !MESSAGE Application error
-- !STACK 1
-- ... stack trace ...

This concurrency error can occur in Windows or in Linux.

However, in the Windows console an unexpected concurrency error can occur, if you are running the code review application repeatedly from the command line, rather than from within a script started from the command line. In the Windows console, when Eclipse is invoked directly from the command line, Eclipse returns as soon as it has launched a JRE to run the code review application, without waiting for the JRE and the code review application to run to completion. The command line is then ready to accept the next command. Thus it can appear that the instance of the code review application that was just started has run to completion, while in fact it might still be running in the background. If you then start another instance of the application while the previous instance is still running, a concurrency error occurs.

This type of concurrency problem is less likely to occur in Linux, because there the Eclipse executable does not return until after the code review application and its JRE have completed.

To avoid such concurrency problems, invoke the code review application from within a script rather than directly from the command line. A script returns control to the user only after all child processes have run to completion. Sample Linux and Windows scripts are provided with the product and are described in the online help.

Rate this page:

(0 users)Average rating

Document information


More support for:

Rational Developer for System z
General Information

Software version:

8.5

Operating system(s):

Linux, Windows

Software edition:

All Editions

Reference #:

1615571

Modified date:

2012-11-26

Translate my page

Machine Translation

Content navigation