You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Jean-Louis Boudart (JIRA)" <ji...@apache.org> on 2015/09/23 09:36:04 UTC
[jira] [Commented] (EASYANT-75) Class.getMethod / Class.invoke:
compliance with J2SE 1.7
[ https://issues.apache.org/jira/browse/EASYANT-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14904101#comment-14904101 ]
Jean-Louis Boudart commented on EASYANT-75:
-------------------------------------------
Thx for the report and patch, i'll get a closer look on this at the end of the week.
> Class.getMethod / Class.invoke: compliance with J2SE 1.7
> --------------------------------------------------------
>
> Key: EASYANT-75
> URL: https://issues.apache.org/jira/browse/EASYANT-75
> Project: EasyAnt
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.9, 0.10
> Reporter: Adrien Quillet
> Priority: Blocker
> Labels: compliance
> Attachments: ant-easyant-core-JIRA-75.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> When running EasyAnt with J2SE 1.7, calling {{EasyAntEngine.guessEasyantCoreJarUrl()}} raises a {{NoSuchMethodException}}/{{IllegalArgumentException}}.
> *Code to fix:*
> {{EasyAntEngine.getLocalURL = conn.getClass().getMethod("getLocalURL", (Class<?>) null)}}
> {{URL localJarUrl = (URL) getLocalURL.invoke(conn, (Class<?>) null)}}
> *Fixed code:*
> {{EasyAntEngine.getLocalURL = conn.getClass().getMethod("getLocalURL", null)}}
> {{URL localJarUrl = (URL) getLocalURL.invoke(conn, null)}}
> *Reason:*
> From JES2 1.7 Javadoc, calling {{getMethod}} or {{invoke}} with no varArg or a {{null}} varArg is treated as if the method was called with an empty array (compliance with JES2 1.5).
> But calling those methods with a {{null}} varArg that is casted to {{Class<?>}} is treated as an array of {{Class<?>}} that contains one {{null}} element. So there is no matching method, hence the {{NoSuchMethodException}}/{{IllegalArgumentException}}.
> _see also:_ http://stackoverflow.com/questions/5586862/weird-behaviour-of-getmethod-in-java-reflection-api-can-someone-explain-this
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)