Changeset 13993 in josm for trunk/src


Ignore:
Timestamp:
2018-07-01T14:59:40+02:00 (13 months ago)
Author:
Don-vip
Message:

see #16400 - update integration test to detect invalid manifest entries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java

    r13204 r13993  
    8484    /** All manifest attributes. */
    8585    public final Map<String, String> attr = new TreeMap<>();
     86    /** Invalid manifest entries */
     87    final List<String> invalidManifestEntries = new ArrayList<>();
    8688    /** Empty icon for these plugins which have none */
    8789    private static final ImageIcon emptyIcon = ImageProvider.getEmpty(ImageProvider.ImageSizes.LARGEICON);
     
    175177        this.attr.clear();
    176178        this.attr.putAll(other.attr);
     179        this.invalidManifestEntries.clear();
     180        this.invalidManifestEntries.addAll(other.invalidManifestEntries);
    177181    }
    178182
     
    248252        }
    249253        canloadatruntime = Boolean.parseBoolean(attr.getValue("Plugin-Canloadatruntime"));
    250         if (oldcheck && mainversion > Version.getInstance().getVersion()) {
    251             int myv = Version.getInstance().getVersion();
    252             for (Map.Entry<Object, Object> entry : attr.entrySet()) {
     254        int myv = Version.getInstance().getVersion();
     255        for (Map.Entry<Object, Object> entry : attr.entrySet()) {
     256            String key = ((Attributes.Name) entry.getKey()).toString();
     257            if (key.endsWith("_Plugin-Url")) {
    253258                try {
    254                     String key = ((Attributes.Name) entry.getKey()).toString();
    255                     if (key.endsWith("_Plugin-Url")) {
    256                         int mv = Integer.parseInt(key.substring(0, key.length()-11));
    257                         if (mv <= myv && (mv > mainversion || mainversion > myv)) {
    258                             String v = (String) entry.getValue();
    259                             int i = v.indexOf(';');
    260                             if (i > 0) {
    261                                 downloadlink = v.substring(i+1);
    262                                 mainversion = mv;
    263                                 version = v.substring(0, i);
    264                                 oldmode = true;
    265                             }
    266                         }
     259                    int mv = Integer.parseInt(key.substring(0, key.length()-11));
     260                    String v = (String) entry.getValue();
     261                    int i = v.indexOf(';');
     262                    if (i <= 0) {
     263                        invalidManifestEntries.add(key);
     264                    } else if (oldcheck && mainversion > Version.getInstance().getVersion() &&
     265                        mv <= myv && (mv > mainversion || mainversion > myv)) {
     266                        downloadlink = v.substring(i+1);
     267                        mainversion = mv;
     268                        version = v.substring(0, i);
     269                        oldmode = true;
    267270                    }
    268                 } catch (NumberFormatException e) {
     271                } catch (NumberFormatException | IndexOutOfBoundsException e) {
     272                    invalidManifestEntries.add(key);
    269273                    Logging.error(e);
    270274                }
Note: See TracChangeset for help on using the changeset viewer.