[
https://issues.apache.org/jira/browse/OPENJPA-2879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17391545#comment-17391545
]
Romain Manni-Bucau commented on OPENJPA-2879:
---------------------------------------------
Guess the default shouldn't be a return false/true but a return type ==
getType(), can you try this "fix"?
> Regression in Column.isCompatible
> ---------------------------------
>
> Key: OPENJPA-2879
> URL: https://issues.apache.org/jira/browse/OPENJPA-2879
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 3.1.2, 3.2.0
> Reporter: Gregory JEVARDAT
> Priority: Major
>
> Bug started to appear when I switched to 3.2.0 and I also spotted it in 3.1.2.
> Metadada resolution started to fail, with all my XML types columns :(
> Debugging pointed me to the merge of columns metadata phase where a call to
> isCompatible now returns false instead of true.
> Looking at the code the add of the case Types.SQLXML at line 788 is causing
> the isCompatible to return false for any of my XML columns. Indeed,
> previously the SQLXML columns where not catched in this case and were relying
> on the default case simply testing equality of the columns.
> I'am wondering in general why the test of the 2 types equality is not done
> before.
> As a quick fix I just added a case testing if the SQLXML is equals to itself
> like for instance
> {code:java}
> case Types.SQLXML: // All XML Types
> case 2007: // Oracle-defined opaque type code for XMLType treated the same
> way
> switch (type) {
> case Types.CHAR:
> case Types.LONGVARCHAR:
> case Types.VARCHAR:
> case Types.CLOB:
> case Types.BLOB:
> case Types.SQLXML:
> return true;
> default:
> return false;
> }
> {code}
>
> Maybe a proper fix is simply to revert the catch of Types.SQLXML, but I'am
> not sure I understand all the hiddent details and assumptions here ... I
> think it is strange than test equality is not tested right at the top of the
> method...
> This bug is quite blocking in my case openjpa fails metadata initialisation
> Cheers
> Gregory
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)