openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter" <kwsut...@gmail.com>
Subject Re: svn commit: r680481 - /openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
Date Wed, 30 Jul 2008 18:33:14 GMT
:-)  Interesting.  Thanks for the education, Craig.

On Wed, Jul 30, 2008 at 11:42 AM, Craig L Russell <Craig.Russell@sun.com>wrote:

> I think I know what the problem is with the xml, independent of the
> discussion of validating versus non-validating parser.
>
> Here are three versions:
>
> a)              <xml-mapping-metadata-complete>
>              </xml-mapping-metadata-complete>
> b)
>  <xml-mapping-metadata-complete></xml-mapping-metadata-complete>
> c)               <xml-mapping-metadata-complete/>
>
> The original, a), has a child consisting of "<cr><lf>              ". So
> it's not empty.
>
> The second, b) is empty.
>
> The third, c), which is the fix that Kevin applied, is also empty.
>
> So the fix is correct, but not the only fix that would work.
>
> Craig
>
>
> On Jul 30, 2008, at 8:31 AM, Kevin Sutter wrote:
>
>  Exactly, Mike.  But, as we talked yesterday, when does this version of
>> Xerxes get incorporated into the Sun JDK?  Having the Sun JDK use a
>> non-validating parser and the IBM JDK use a validating parser will
>> continue
>> to introduce inconsistencies (as documented in OPENJPA-513).
>>
>> Kevin
>>
>> On Wed, Jul 30, 2008 at 9:25 AM, Michael Dick <michael.d.dick@gmail.com
>> >wrote:
>>
>>  FWIW this may be related to the way we disable validation based on the
>>> version of xerces that is in use :
>>>
>>> There's a specific check in XMLDataParser which disables validation based
>>> on
>>> the version of xerces found on the classpath.
>>>
>>>  static {
>>>      try {
>>>          // check for Xerces version 2.0.2 to see if we need to disable
>>>          // schema validation, which works around the bug reported at:
>>>          // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708859
>>>          _schemaBug = "Xerces-J 2.0.2".equals(Class.forName
>>>              ("org.apache.xerces.impl.Version").getField("fVersion").
>>>              get(null));
>>>      } catch (Throwable t) {
>>>          // Xerces might not be available
>>>          _schemaBug = false;
>>>      }
>>>  }
>>>  :
>>>  :
>>>    if (schemaSource != null && _schemaBug) {
>>>          if (_log != null && _log.isTraceEnabled())
>>>              _log.trace(_loc.get("parser-schema-bug"));
>>>          schemaSource = null;
>>>      }
>>>      boolean validating = _validating && (getDocType() != null
>>>          || schemaSource != null);
>>>   :
>>>   :
>>>          _sourceName = sourceName;
>>>          SAXParser parser = XMLFactory.getSAXParser(validating, true);
>>>          Object schema = null;
>>>          if (validating) {
>>>              schema = schemaSource;
>>>              if (schema == null && getDocType() != null)
>>>                  xml = new DocTypeReader(xml, getDocType());
>>>          }
>>>
>>> I haven't done all my homework to verify that this is the case, but
>>> explain
>>> the difference between JDKs.
>>>
>>> -mike
>>>
>>> On Wed, Jul 30, 2008 at 8:12 AM, Kevin Sutter <kwsutter@gmail.com>
>>> wrote:
>>>
>>>  Craig,
>>>> If you would have asked me before seeing the error, I would have thought
>>>> the
>>>> same thing.  But, with the original xml, I received the following error
>>>> from
>>>> the validating parser in the IBM JDK:
>>>>
>>>> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.516
>>>> sec
>>>> <<< FAILURE!
>>>>
>>>>
>>>> testMapping(org.apache.openjpa.persistence.jdbc.unique.TestUniqueConstraintWithXMLDescriptor)
>>>
>>>> Time elapsed: 1.437 sec  <<< ERROR!
>>>> <openjpa-1.2.0-SNAPSHOT-r422266:680481M nonfatal general error>
>>>> org.apache.openjpa.persistence.PersistenceException:
>>>> org.xml.sax.SAXException:
>>>>
>>>>
>>>> file:/C:/eclipse.workspaces/3.2.2/openjpa-trunk-committed/openjpa-persistence-jdbc/target/test-classes/org/apache/openjpa/persistence/jdbc/unique/orm.xml
>>>
>>>> [Location: Line: 27, C: 35]: org.xml.sax.SAXParseException:
>>>> cvc-complex-type.2.1: Element 'xml-mapping-metadata-complete' must have
>>>>
>>> no
>>>
>>>> character or element information item [children], because the type's
>>>> content
>>>> type is empty.
>>>>      at
>>>> org.apache.openjpa.persistence.PersistenceMetaDataFactory.parseXML(Pe
>>>> rsistenceMetaDataFactory.java:249)
>>>>  :
>>>>  :
>>>>
>>>> I surmised from this error that the problem was due to the split xml
>>>> tag.
>>>> The XSD has this element defined as follows:
>>>>
>>>> <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
>>>> minOccurs="0"/>
>>>>
>>>> So, I changed it to the single line version and the problem went away.
>>>>
>>>> Kevin
>>>>
>>>> On Mon, Jul 28, 2008 at 4:31 PM, Craig L Russell <Craig.Russell@sun.com
>>>>
>>>>> wrote:
>>>>>
>>>>
>>>>  Hi Kevin,
>>>>>
>>>>> Just for my information, what's wrong with the original xml:
>>>>>
>>>>>       <persistence-unit-metadata>
>>>>>
>>>>>> -               <xml-mapping-metadata-complete>
>>>>>> -               </xml-mapping-metadata-complete>
>>>>>> +               <xml-mapping-metadata-complete/>
>>>>>>      </persistence-unit-metadata>
>>>>>>
>>>>>>
>>>>>
>>>>> I understand these statements (before versus after) are legal and
>>>>> equivalent. But I'm always looking to improve my understanding.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Craig
>>>>>
>>>>> On Jul 28, 2008, at 1:26 PM, kwsutter@apache.org wrote:
>>>>>
>>>>> Author: kwsutter
>>>>>
>>>>>> Date: Mon Jul 28 13:26:21 2008
>>>>>> New Revision: 680481
>>>>>>
>>>>>> URL: http://svn.apache.org/viewvc?rev=680481&view=rev
>>>>>> Log:
>>>>>> OPENJPA-668.  Fixed up the orm.xml file that was used for testing
so
>>>>>>
>>>>> that
>>>>
>>>>> it could pass the validation of the IBM JDK parser.
>>>>>>
>>>>>> Modified:
>>>>>>
>>>>>>
>>>>>>
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
>>>
>>>>
>>>>>> Modified:
>>>>>>
>>>>>>
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
>>>
>>>> URL:
>>>>>>
>>>>>>
>>>>
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml?rev=680481&r1=680480&r2=680481&view=diff
>>>
>>>>
>>>>>>
>>>>>>
>>>> ==============================================================================
>>>
>>>> ---
>>>>>>
>>>>>>
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
>>>
>>>> (original)
>>>>>> +++
>>>>>>
>>>>>>
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
>>>
>>>> Mon Jul 28 13:26:21 2008
>>>>>> @@ -23,8 +23,7 @@
>>>>>>      version="1.0">
>>>>>>
>>>>>>      <persistence-unit-metadata>
>>>>>> -               <xml-mapping-metadata-complete>
>>>>>> -               </xml-mapping-metadata-complete>
>>>>>> +               <xml-mapping-metadata-complete/>
>>>>>>      </persistence-unit-metadata>
>>>>>>
>>>>>>
>>>>>> @@ -76,10 +75,8 @@
>>>>>>
>>>>>>                      <many-to-many name="bs">
>>>>>>                              <join-table
>>>>>>
>>>>> name="UNIQUE_JOINTABLE_XML">
>>>
>>>> -                                       <join-column name="FK_A_XML"
>>>>>> referenced-column-name="aid" nullable="false">
>>>>>> -                                       </join-column>
>>>>>> -                                       <inverse-join-column
>>>>>> name="FK_B_XML" referenced-column-name="bid" nullable="false">
>>>>>> -                                       </inverse-join-column>
>>>>>> +                                       <join-column name="FK_A_XML"
>>>>>> referenced-column-name="aid" nullable="false"/>
>>>>>> +                                       <inverse-join-column
>>>>>> name="FK_B_XML" referenced-column-name="bid" nullable="false"/>
>>>>>>                                      <unique-constraint>
>>>>>>
>>>>>> <column-name>FK_A_XML</column-name>
>>>>>>
>>>>>> <column-name>FK_B_XML</column-name>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  Craig L Russell
>>>>> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
>>>>> 408 276-5638 mailto:Craig.Russell@sun.com
>>>>> P.S. A good JDO? O, Gasp!
>>>>>
>>>>>
>>>>>
>>>>
>>>
> Craig L Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message