Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 362868

Summary: Wrong generated java class for Xtend create function
Product: [Modeling] TMF Reporter: Serano Colameo <serano.colameo>
Component: XtextAssignee: Project Inbox <tmf.xtext-inbox>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P3 CC: christian.dietrich.opensource, haf, sven.efftinge
Version: 2.1.1Flags: sven.efftinge: juno+
Target Milestone: M4   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Serano Colameo CLA 2011-11-04 04:54:48 EDT
Build Identifier: 2.1.0.v201111010612

xtend:

	def Package create result: icmDslFactory.createPackage createPackage() {
		result
	}

java:

  public com.csg.cs.tools.mdgen.icm.icmDsl.Package createPackage() {
    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList();
    final com.csg.cs.tools.mdgen.icm.icmDsl.Package _result;
    synchronized (_createCache_createPackage) {
      if (_createCache_createPackage.containsKey(_cacheKey)) {
        return _createCache_createPackage.get(_cacheKey);
      }
      Icm2Icm _Icm2Icm = Icm2Icm; // <== BUG
      IcmDslFactory _icmDslFactory = _Icm2Icm.getIcmDslFactory();
      com.csg.cs.tools.mdgen.icm.icmDsl.Package _createPackage = _icmDslFactory.createPackage();
      _result = _createPackage;
      _createCache_createPackage.put(_cacheKey, _result);
    }
    _init_createPackage(_result);
    return _result;
  }


Reproducible: Always

Steps to Reproduce:
1. see <== bug
2.
3.
Comment 1 Serano Colameo CLA 2011-11-04 05:54:32 EDT
here the correct java code which was generated with xtext 2.0.1:

  public Package createDefPackage(final Package origPackage) {
    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(origPackage);
    final Package result;
    synchronized (_createCache_createDefPackage) {
      if (_createCache_createDefPackage.containsKey(_cacheKey)) {
        return _createCache_createDefPackage.get(_cacheKey);
      }
      IcmDslFactory _icmDslFactory = this.getIcmDslFactory();
      Package _createPackage = _icmDslFactory.createPackage();
      result = _createPackage;
      _createCache_createDefPackage.put(_cacheKey, result);

/serano
Comment 2 Sven Efftinge CLA 2011-11-07 03:14:47 EST
pushed to master
Comment 3 Sebastian Zarnekow CLA 2011-11-07 12:27:53 EST
*** Bug 363071 has been marked as a duplicate of this bug. ***
Comment 4 Sebastian Zarnekow CLA 2011-11-07 13:53:30 EST
*** Bug 362695 has been marked as a duplicate of this bug. ***
Comment 5 Karsten Thoms CLA 2017-09-19 17:28:36 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 6 Karsten Thoms CLA 2017-09-19 17:39:45 EDT
Closing all bugs that were set to RESOLVED before Neon.0