[ 
https://issues.apache.org/jira/browse/OPENJPA-2240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13423441#comment-13423441
 ] 

Kevin Sutter commented on OPENJPA-2240:
---------------------------------------

I have been trying to reproduce the situation with no luck.  Granted, I don't 
have the hyperjaxb and the associated XML libraries.  But, from your 
description, it sounded like I should be able to reproduce the VerifyError with 
an extra helper getter method that called a utility method passing in a .class 
as the first parameter.  Just something to complicate the getter method just 
enough to screw up the StackMapTables.  But, I have had no luck.  As an 
example, here's what I added to a simple Entity class:

    @Basic
    @Column(name = "DATATIMEITEM")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getDataTimeItem() {
        //  return 
XmlAdapterUtils.unmarshall(XMLGregorianCalendarAsDateTime.class, 
this.getDataTime()); 
        return unmarshall(XMLGregorianCalendar.class, this.getDateField());
    }

    private Date unmarshall(Class<XMLGregorianCalendar> class1, Date 
dateField2) {
        // TODO Auto-generated method stub
        return dateField2;
    }

I tried this with Java6sr9 (my current default), Java6sr10 (your current Java), 
and Java7.  No luck with reproducing.  If you can help with narrowing down the 
scenario with a simpler testcase, or maybe provide the Entity classes and 
needed libraries to reproduce it, I'm very interested in tracking down this 
problem.  Thanks.
                
> JVMVRFY012 when using openjpa together with hyperjaxb3
> ------------------------------------------------------
>
>                 Key: OPENJPA-2240
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2240
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance
>    Affects Versions: 2.2.0
>         Environment: IBM-JDK, SUN-JDK
>            Reporter: Piotr Klimczak
>            Priority: Critical
>              Labels: enhancement, hyperjaxb3, jpa, stubs, xsd
>
> We are facing a problem with class enhancing generated by hyperjaxb3.
> "Caused by: java.lang.VerifyError: JVMVRFY012 stack shape inconsistent; 
> class=foo/Bar, metoda=pcgetDataTimeItem()Ljava/util/Date;, pc=7"
> The problem occurs on every usage of non JPA compatible type like 
> XMLGregorianCalendar.
> For those types, the hyperjaxb3 plugin creates a kind of "proxy" 
> setter/getter that uses JPA capable type.
> Example of such proxy getter/setter:
> <code>
>         @Basic
>         @Column(name = "DATATIMEITEM")
>         @Temporal(TemporalType.TIMESTAMP)
>         public Date getDataTimeItem() {
>             return 
> XmlAdapterUtils.unmarshall(XMLGregorianCalendarAsDateTime.class, 
> this.getDataTime());
>         }
> </code>
> then the XmlAdapterUtils.unmarshall looks like:
> <code>
>       public static <ValueType, BoundType> BoundType unmarshall(
>                       Class<? extends XmlAdapter<ValueType, BoundType>> 
> xmlAdapterClass,
>                       ValueType v) {
>               try {
>                       final XmlAdapter<ValueType, BoundType> xmlAdapter = 
> getXmlAdapter(xmlAdapterClass);
>                       return xmlAdapter.unmarshal(v);
>               } catch (Exception ex) {
>                       throw new RuntimeException(ex);
>               }
>       }
> </code>
> I have found that the problem occurs only because of the type of 
> XmlAdapterUtils.unmarshall method. The problem is that it's 1st type is a 
> "Class". Changing the 1st type from Class type to any other like Object 
> solves the problem but it is not a solution.
> I think the problem is somewhere in serp project as after the enhancment 
> process of classes containing non JPA capable XSD types, each call of that 
> class generates the JVMVRFY012 exception- even during junit tests.
> Please note, that this bug is a blocker for my project.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to