Thursday, 25 January 2018

Das Produkt konnte nicht gestartet werden, da der zugehörige Arbeitsbereich derzeit von einer anderen Eclipse-Anwendung verwendet wird

Wenn Sie am Anfang von Eclipse oder einem RCP-basierten Produkt einen Fehler sehen, dann ist hier die Lösung:


"Could not launch the product because the associated workspace is currently in use by another Eclipse application."


“Workspace in use or cannot be created chose a different one.”


Gehe zum Arbeitsplatz
Datei löschen: <workspace location>/.metadata/.lock

Durch Eclipse kann der Benutzer mehrere Arbeitsbereichsspeicherorte erstellen. Ein Arbeitsbereich kann jeweils von einem Benutzer bearbeitet werden. Ein Arbeitsbereich enthält die Daten zu verschiedenen Projektkonfigurationen und lokalen Dateispeichern.

Um zu vermeiden, dass mehrere Benutzer auf denselben Arbeitsbereich zugreifen, verwaltet eclipse eine ".lock" -Datei im Arbeitsbereich. Eclipse wird diese ".lock" -Datei entfernen, wenn Sie den Eclipse schließen.

In einigen Fällen stürzt Eclipse jedoch aufgrund eines Fehlers ab, aufgrund dessen die Datei ".lock" nicht aus dem Arbeitsbereich entfernt werden kann. Wenn Sie Eclipse mit demselben Arbeitsbereich öffnen, wird dadurch ein Fehler angezeigt: "Das Produkt konnte nicht gestartet werden, da der zugehörige Arbeitsbereich derzeit von einer anderen Eclipse-Anwendung verwendet wird." oder "Arbeitsbereich in Verwendung oder kann nicht erstellt werden, wählen Sie einen anderen."

Wenn wir in diesem Fall die Datei ".lock" aus <workspace location>/.metadata /.lock entfernen, wird das Problem behoben.

Lead Engineer-Java

Lead Engineer-Java


  • Design, development and deployment of backend services in Java or Python Django
  • Adoption of development best practices like Unit test automation, static testing, TDD and Continuous integration
  • Create prototypes and build POC for new components with the latest state-of-the-art technologies
  • Build High Performance, scalable systems that can withstand a daily load of a million hits.
  • Collaborate with Product Management and business teams to understand the requirements and convert into technical specifications

Minimum Qualifications
  • B Tech degree in any discipline, preferably in Computer science
  • 6-9 years of Software development experience in Java/J2EE
  • Experience with frameworks like Spring, Struts, Python Django, Restful Webservices is highly desired.
  • Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate)
  • Strong problem-solving skills

Preferred Qualifications
  • Experience on Solr, Elastic search, Redis, Memcached, MongoDB, Hadoop, Micro

Wednesday, 24 January 2018

Backend Developer at RoofandFloor (3-5 years)

Backend Developer at RoofandFloor (3-5 years)

Job Description

3-5 year experience

 Execute full lifecycle software development
 Write well designed, testable, efficient code
 Produce specifications and determine operational feasibility
 Integrate software components into a fully functional software system
 Develop software verification plans and quality assurance procedures
 Document and maintain software functionality
 Comply with project plans
 B Tech degree in any discipline, preferably in Computer science
 Certification in programming Java or Python other selected languages preferred
 Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate)
 Prior experience in programming desired
 Strong problem solving skills

Saturday, 26 August 2017

Arrays.asList() throws java.lang.UnsupportedOperationException

Arrays.asList() throws java.lang.UnsupportedOperationException

You might get the UnsupportedException when you tries to use the add() method in the List.

If your code looks something similar to this :

String[] data = new String[] {"hari","krushna"};
List<String> asList = Arrays.asList(data);

Then you will see the following exception :

at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at ArrayConvert.trial(
at ArrayConvert.main(

Solution of the above problem is :
 you need to create an ArrayList or LinkedList and add the objects to the newly created Array/LinkedList:

String[] data = new String[] {"","",""};
List<String> asList = Arrays.asList(data);
List<String> newList = new LinkedList<>(asList);

Reason for the UnsupportedOperationException:

Arrays.asList Method is returning a sub class object of Arrays class : java.util.Arrays.ArrayList

Following is the signature of the class :

private static class ArrayList<E> extends AbstractList<E> implements

Here ArrayList extends java.util.AbstractList class.

Following are the add() method in AbstractList:

public boolean add(E e) {
 add(size(), e);
 return true;

public void add(int index, E element) {
  throw new UnsupportedOperationException();

As you see above add() method is not implemented, so when add() method is called directly from asList() object then it will throw an Exception.

This will be Runtime exception so difficult to identify at the time of coding. 

Thursday, 22 June 2017

Command Parameter RCP (Eclipse RCP)

Command Parameter RCP (Eclipse RCP)

Open MANIFEST.MF file and right click on the Command and select "commandParameter" from "New".

After creating "commandParameter", enter the details, like "id", "name" and make optional as "false".

After adding the parameter in the command, in View (or Editor) at the time of calling the command set the parameter. Refer the following code to set the parameter at the time of execution.

Code in View (or Editor):

ICommandService commandService = (ICommandService) getSite().getService(ICommandService.class);
IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);

// Enter the ID of the Command as the argument to getCommand() method in next line.
Command sysoComm = commandService.getCommand("ResumeParser.commands.sampleCommand");

HashMap<String, String> paramsForCommand = new HashMap<String, String>();
// Enter the Command Parameter id as the Key in the following line.

ParameterizedCommand paramCommand = ParameterizedCommand.generateCommand(sysoCommparamsForCommand);

try {
catch (Exception ee) {

Following is the code of execute() method of the Handler (AbstractHandler) class.

* the command has been executed, so extract extract the needed information
* from the application context.
public Object execute(ExecutionEvent event) throws ExecutionException {
        // Provide the id of the "Command Parameter" as the argument of the getParameter method.
String commandValue = event.getParameter("ResumeParser.commandParameter2");
return null;


Friday, 16 June 2017

Execute Command from View/Editor in Eclipse RCP

Execute Command from View/Editor in Eclipse RCP

All Commands will be registered to IHandlerService. If we get the IHandlerService instance then we can call the desired command and then execute it.

// Get the Instance of IHandlerService from View
// Alternate way of getting site object is this also:
// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite()
// But we prefer  following so we get the appropriate IWorkbenchPartSite object.
IHandlerService service = (IHandlerService) getSite().getService(IHandlerService.class); 
try {
service.executeCommand("ResumeParser.commands.sampleCommand", null); 
} catch (ExecutionException e1) { 
} catch (NotDefinedException e1) { 
} catch (NotEnabledException e1) { 
} catch (NotHandledException e1) { 

Sunday, 11 June 2017

Fie Dialog and Folder Dialog in Eclipse RCP

Fie Dialog and Folder Dialog in Eclipse RCP

File Dialog in Eclipse:
- This will only allow you to select the files in the Dialog Box
FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); // Following line is Optional if you want to, enable filter for specific files. //fileDialog.setFilterExtensions(new String[] {"*.txt","*.csv"}); String filePath =; System.out.println(filePath);

Folder Dialog in Eclipse:
- This will allow you to select the folder in the Dialog box.
DirectoryDialog directoryDialog = new DirectoryDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); // Optional - if you want to open specific path //directoryDialog.setFilterPath("/home/hv185014/junk/"); String directoryPath =; System.out.println(directoryPath);