Hello Chethan,
Is very nice to have you here, feel welcome.
I have seen the problem you are having, and is a very ease thing, just remove the empty <detailFiles>, the thing is that the program does not check if they are empty, and tries to generate code for detail files and .....plaf..error.
I removed the lines, and attached result xml definition file. (also the generated war).
While I was looking for the problem I have found a bug, where a detail file of a detail file with two detail files (your corresponding "ProductSpectCharacteristic"), will have a duplicate variable name. I have corrected the velocity template, and I will upload a new version this weekend. mean while if you want to patch your xmlportletfactory, go to Portlet_XXXXXXPortlet_java.vm file and coment (put ### in front) line 867 and 870 like this:
1### #foreach($detailfile2 in $application.getDetailFiles().getDetailFileArray())
2 QName qName${application.getClassDef().getName()} = new QName("http://liferay.com/events", "${application.getClassDef().getName()}.${detailfile2.getConnectionFieldName()}");
3 response.setEvent(qName${application.getClassDef().getName()}, "0");
4### #end
Now you can generate with our errors.
Saludos, Jack.