Fix TicketModel modList bug when a field was set multiple times
| | |
| | |
|
| | | /** Extracts the ticket id from the ref name */
|
| | | private long getTicketId(String refName) {
|
| | | if (refName.indexOf('%') > -1) {
|
| | | refName = refName.substring(0, refName.indexOf('%'));
|
| | | }
|
| | | if (refName.startsWith(Constants.R_FOR)) {
|
| | | String ref = refName.substring(Constants.R_FOR.length());
|
| | | if (ref.indexOf('%') > -1) {
|
| | | ref = ref.substring(0, ref.indexOf('%'));
|
| | | }
|
| | | try {
|
| | | return Long.parseLong(ref);
|
| | | } catch (Exception e) {
|
| | |
| | | for (String item : items) { |
| | | list.add(prefix + item); |
| | | } |
| | | if (hasField(field)) { |
| | | String flat = getString(field); |
| | | if (isEmpty(flat)) { |
| | | // field is empty, use this list |
| | | setField(field, join(list, ",")); |
| | | } else { |
| | | // merge this list into the existing field list |
| | | Set<String> set = new TreeSet<String>(Arrays.asList(flat.split(","))); |
| | | set.addAll(list); |
| | | setField(field, join(set, ",")); |
| | | } |
| | | } else { |
| | | // does not have a list for this field |
| | | setField(field, join(list, ",")); |
| | | } |
| | | } |
| | | |
| | | public String getId() { |