You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Sean Qiu (JIRA)" <ji...@apache.org> on 2008/05/20 09:43:55 UTC
[jira] Updated: (HARMONY-5831) [classlib][beans] XMLDecoder will
throw exception for restrict method type check
[ https://issues.apache.org/jira/browse/HARMONY-5831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Qiu updated HARMONY-5831:
------------------------------
Attachment: Harmony-5831.diff
Could someone please try this patch?
> [classlib][beans] XMLDecoder will throw exception for restrict method type check
> --------------------------------------------------------------------------------
>
> Key: HARMONY-5831
> URL: https://issues.apache.org/jira/browse/HARMONY-5831
> Project: Harmony
> Issue Type: Bug
> Components: Classlib
> Affects Versions: 5.0M6
> Reporter: Sean Qiu
> Fix For: 5.0M6
>
> Attachments: Harmony-5831.diff
>
>
> The java.beans.XMLDecoder gets NoSuchMethodExceptions when method which take java.lang.Object as parameters are invoked with a java.lang.String against an "owner" object. In general, XMLDecoder throws a NoSuchMethodException unless the classes of the arguments match exactly with a method signature.
> xml file:
> <java version='1.6.0' class='java.beans.XMLDecoder'>
> <void property='owner'>
> <void method='get' id='v'>
> <string>key</string>
> </void>
> </void>
> <object idref='v'/>
> </java>
> testcase:
> String expectedValue = "expected value";
> HashMap map = new HashMap();
> map.put("key", expectedValue);
>
> XMLDecoder decoder = new XMLDecoder(this.getClass().getResourceAsStream(
> "/xml/MockOwner.xml"), map);
> String actualValue = (String) decoder.readObject();
> assertEquals(expectedValue,actualValue);
> stack trace:
> java.lang.NoSuchMethodException: get(java.lang.String)
> at java.lang.Class.findMatchingMethod(Unknown Source)
> at java.lang.Class.getMethod(Unknown Source)
> at java.beans.XMLDecoder$SAXHandler.executeCommon(XMLDecoder.java:336)
> at java.beans.XMLDecoder$SAXHandler.execute(XMLDecoder.java:285)
> at java.beans.XMLDecoder$SAXHandler.endElement(XMLDecoder.java:250)
> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
> at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
> at javax.xml.parsers.SAXParser.parse(Unknown Source)
> at java.beans.XMLDecoder.<init>(XMLDecoder.java:480)
> at java.beans.XMLDecoder.<init>(XMLDecoder.java:456)
> at DecoderTest.decode(DecoderTest.java:28)
> at DecoderTest.main(DecoderTest.java:108)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.