--- Ice-3.4.2-org/cpp/src/slice2java/Gen.cpp 2011-06-15 19:43:59.000000000 +0000 +++ Ice-3.4.2/cpp/src/slice2java/Gen.cpp 2013-01-27 19:42:58.390864325 +0000 @@ -2609,101 +2609,94 @@ out << getAbsolute(base, package); } out << sb; - - if(!allDataMembers.empty()) - { - // - // Constructors. - // - out << sp; - out << nl << "public " << name << "()"; - out << sb; - if(base) - { - out << nl << "super();"; - } - writeDataMemberInitializers(out, members, package); - out << eb; - - out << sp; - out << nl << "public " << name << "(Throwable cause)"; - out << sb; - out << nl << "super(cause);"; - writeDataMemberInitializers(out, members, package); - out << eb; - - // - // A method cannot have more than 255 parameters (including the implicit "this" argument). - // - if(allDataMembers.size() < 255) - { - out << sp << nl << "public " << name << spar; - vector paramDecl; - for(d = allDataMembers.begin(); d != allDataMembers.end(); ++d) - { - string memberName = fixKwd((*d)->name()); - string memberType = typeToString((*d)->type(), TypeModeMember, package, (*d)->getMetaData()); - paramDecl.push_back(memberType + " " + memberName); - } - out << paramDecl << epar; - out << sb; - if(base && allDataMembers.size() != members.size()) - { - out << nl << "super" << spar; - vector baseParamNames; - DataMemberList baseDataMembers = base->allDataMembers(); - for(d = baseDataMembers.begin(); d != baseDataMembers.end(); ++d) - { - baseParamNames.push_back(fixKwd((*d)->name())); - } - - out << baseParamNames << epar << ';'; - } - vector paramNames; - for(d = members.begin(); d != members.end(); ++d) - { - paramNames.push_back(fixKwd((*d)->name())); - } - for(vector::const_iterator i = paramNames.begin(); i != paramNames.end(); ++i) - { - out << nl << "this." << *i << " = " << *i << ';'; - } - out << eb; - - // - // Create constructor that takes all data members plus a Throwable - // - if(allDataMembers.size() < 254) - { - paramDecl.push_back("Throwable cause"); - out << sp << nl << "public " << name << spar; - out << paramDecl << epar; - out << sb; - if(!base) - { - out << nl << "super(cause);"; - } - else - { - out << nl << "super" << spar; - vector baseParamNames; - DataMemberList baseDataMembers = base->allDataMembers(); - for(d = baseDataMembers.begin(); d != baseDataMembers.end(); ++d) - { - baseParamNames.push_back(fixKwd((*d)->name())); - } - baseParamNames.push_back("cause"); - out << baseParamNames << epar << ';'; - } - for(vector::const_iterator i = paramNames.begin(); i != paramNames.end(); ++i) - { - out << nl << "this." << *i << " = " << *i << ';'; - } - out << eb; - } - } - } - + + // + // Constructors. + // + out << sp; + out << nl << "public " << name << "()"; + out << sb; + out << nl << "super();"; + writeDataMemberInitializers(out, members, package); + out << eb; + + out << sp; + out << nl << "public " << name << "(Throwable cause)"; + out << sb; + out << nl << "super(cause);"; + writeDataMemberInitializers(out, members, package); + out << eb; + + // A method cannot have more than 255 parameters (including the implicit "this" argument). + if (!allDataMembers.empty() && allDataMembers.size() < 255) + { + + out << sp << nl << "public " << name << spar; + vector paramDecl; + for(d = allDataMembers.begin(); d != allDataMembers.end(); ++d) + { + string memberName = fixKwd((*d)->name()); + string memberType = typeToString((*d)->type(), TypeModeMember, package, (*d)->getMetaData()); + paramDecl.push_back(memberType + " " + memberName); + } + out << paramDecl << epar; + out << sb; + if(base && allDataMembers.size() != members.size()) + { + out << nl << "super" << spar; + vector baseParamNames; + DataMemberList baseDataMembers = base->allDataMembers(); + for(d = baseDataMembers.begin(); d != baseDataMembers.end(); ++d) + { + baseParamNames.push_back(fixKwd((*d)->name())); + } + + out << baseParamNames << epar << ';'; + } + vector paramNames; + for(d = members.begin(); d != members.end(); ++d) + { + paramNames.push_back(fixKwd((*d)->name())); + } + for(vector::const_iterator i = paramNames.begin(); i != paramNames.end(); ++i) + { + out << nl << "this." << *i << " = " << *i << ';'; + } + out << eb; + + // + // Create constructor that takes all data members plus a Throwable + // + if(allDataMembers.size() < 254) + { + paramDecl.push_back("Throwable cause"); + out << sp << nl << "public " << name << spar; + out << paramDecl << epar; + out << sb; + if(!base) + { + out << nl << "super(cause);"; + } + else + { + out << nl << "super" << spar; + vector baseParamNames; + DataMemberList baseDataMembers = base->allDataMembers(); + for(d = baseDataMembers.begin(); d != baseDataMembers.end(); ++d) + { + baseParamNames.push_back(fixKwd((*d)->name())); + } + baseParamNames.push_back("cause"); + out << baseParamNames << epar << ';'; + } + for(vector::const_iterator i = paramNames.begin(); i != paramNames.end(); ++i) + { + out << nl << "this." << *i << " = " << *i << ';'; + } + out << eb; + } + } + out << sp << nl << "public String" << nl << "ice_name()"; out << sb; out << nl << "return \"" << scoped.substr(2) << "\";";