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.