Modify

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#17749 closed defect (worksforme)

kendzi3d plugin broken since josm-snapshot-15007

Reported by: cmuelle8 Owned by: team
Priority: normal Milestone:
Component: Core Version: tested
Keywords: Cc:

Description (last modified by cmuelle8)

Hi, removing deprecated API in changeset 15007 broke kendzi3d plugin. rev15000 still worked.

@Don-vip: It is relatively easy to reintroduce the method in question (with the deprecation warning). Can you please restore it, until kendzi3d plugin has been indeed been migrated to using ReflectionUtils#setObjectsAccessible(AccessibleObject...)?

The component this is assigned to is core instead of plugin kendzi3d, because the missing method has been part of the core, and not of the plugin -code.

2019-05-23 14:24:19.679 SCHWERWIEGEND: org.openstreetmap.josm.plugins.PluginException: In der Erweiterung kendzi3d ist ein Fehler aufgetreten.. Ursache: java.lang.reflect.InvocationTargetException. Ursache: java.lang.NoSuchMethodError: org.openstreetmap.josm.tools.Utils.setObjectsAccessible([Ljava/lang/reflect/AccessibleObject;)V
org.openstreetmap.josm.plugins.PluginException: In der Erweiterung kendzi3d ist ein Fehler aufgetreten.
        at org.openstreetmap.josm.plugins.PluginInformation.load(PluginInformation.java:365)
        at org.openstreetmap.josm.plugins.PluginHandler.loadPlugin(PluginHandler.java:804)
        at org.openstreetmap.josm.plugins.PluginHandler.loadPlugins(PluginHandler.java:890)
        at org.openstreetmap.josm.plugins.PluginHandler.loadLatePlugins(PluginHandler.java:933)
        at org.openstreetmap.josm.gui.MainApplication.loadLatePlugins(MainApplication.java:1143)
        at org.openstreetmap.josm.gui.MainApplication.mainJOSM(MainApplication.java:907)
        at org.openstreetmap.josm.gui.MainApplication$3.processArguments(MainApplication.java:277)
        at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:704)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        at org.openstreetmap.josm.plugins.PluginInformation.load(PluginInformation.java:360)
        ... 7 more
Caused by: java.lang.NoSuchMethodError: org.openstreetmap.josm.tools.Utils.setObjectsAccessible([Ljava/lang/reflect/AccessibleObject;)V
        at kendzi.josm.jogl.JoglPlugin.doAddJarsToClassLoader(JoglPlugin.java:214)
        at kendzi.josm.jogl.JoglPlugin.addJarsToClassLoader(JoglPlugin.java:204)
        at kendzi.josm.jogl.JoglPlugin.addLibraryToClassPath(JoglPlugin.java:124)
        at kendzi.josm.jogl.JoglPlugin.addJoglToClassPath(JoglPlugin.java:55)
        at kendzi.josm.kendzi3d.Kendzi3DPlugin.<init>(Kendzi3DPlugin.java:80)
        ... 12 more


Thanks for fixing!

Attachments (0)

Change History (9)

comment:1 by cmuelle8, 6 years ago

Description: modified (diff)
Version: tested

comment:2 by stoecker, 6 years ago

Resolution: wontfix
Status: newclosed

Deprecated APIs are subject to removal. Plugins have a lot of time to be fixed before the API finally goes. There is no reason to revert such a decision.

comment:3 by Don-vip, 6 years ago

The plugin has been updated long ago. Please update your plugins instead of asking me to revert a core change.

comment:4 by anonymous, 6 years ago

I had updated plugins to 1.0.205 (!), which did and does not work, because of the removal.

@stoecker: "Lot of time" is relative. Between revisions 14977 and 15007 lie merely 30 changesets, and on a wallclock timescale, the time from introduction to the removal of deprecation had thus been from 2019-04-09T01:32:56+02:00 to 2019-04-21T02:49:30+02:00: less than two weeks.

comment:5 by anonymous, 6 years ago

@Don-vip: https://github.com/kendzi/kendzi3d/releases - no releases since 17 Sep 2018, which was 1.0.205. Which update of the kendzi3d plugin are you refering to?

comment:6 by anonymous, 6 years ago

@Don-vip:

  • with rev 15105 the plugin loads unchanged (1.0.205), but I noticed josm-jogl received an update to version 1.2.3, which was released 18 days ago: https://github.com/kendzi/josm-jogl/releases/ (previous runs clang onto cached jogl.jar, versioned 1.2.2)
  • updated plugin manifest points to this version with a minimum josm requirement of 14977, so should have been downloaded with josm-tested.jar (15031) just as well ..

The plugins updater did not pick up this change here afer update to josm-tested.jar, although it should have imho. Anyway, works here now.

For anyone having the same problem: Updating list of available plugins in Preferences manually should help, evenutally removing jogl.jar and the cached plugin.txt file from plugins/ directory.

comment:7 by cmuelle8, 6 years ago

Resolution: wontfixworksforme

ensure jogl.jar is updated to version 1.2.3 (!)

Under certain conditions the plugin updater may fail to do the update from 1.2.2 automatically, if that was cached/present. There were 5 commits to josm-jogl since 1.2.2 release in Sep 2018. The relevant fix is here

Last edited 6 years ago by cmuelle8 (previous) (diff)

comment:8 by Don-vip, 6 years ago

@cmuelle8 I'm referring to this comment, and the fact our integration test passes.

in reply to:  8 comment:9 by anonymous, 6 years ago

Replying to Don-vip:

@cmuelle8 I'm referring to this comment, and the fact our integration test passes.

fair enough, thanks for the heads up.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.