On 2/13/06, George Korosy <[EMAIL PROTECTED]> wrote:
> DatabaseIO.read() when invoked either with a java.io.File or a
> java.io.FileReader argument throws DdlUtilsException with
> java.net.MalformedURLException causes, nested to an infinite depth.
Please post more info, e.g. the code snippet you use, what you feed
into the File/FileReader, the stacktrace.
Tom
Tom, this is code:
private static Database createDb(File schema) {
Database result = null;
try {
result = new DatabaseIO().read(schema);
} catch (DdlUtilsException e) {
e.printStackTrace();
try {
final BufferedReader reader = new BufferedReader(new
FileReader(schema));
System.out.println();
System.out.println("=== ... while reading input:
===================================");
for ( String line = reader.readLine(); line != null; line =
reader.readLine() ) {
System.out.println(line);
}
System.out.println("================================================================");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
return result;
}
And this is output:
org.apache.ddlutils.DdlUtilsException: java.net.MalformedURLException
at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:172)
at
au.com.ns98.dandf.persistence.builder.SchemaBuilder.createDb(SchemaBuilder.java:183)
at
au.com.ns98.dandf.persistence.builder.SchemaBuilder.main(SchemaBuilder.java:104)
Caused by: java.net.MalformedURLException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at
org.apache.commons.betwixt.XMLIntrospector.loadMultiMapping(XMLIntrospector.java:657)
at
org.apache.commons.betwixt.XMLIntrospector.register(XMLIntrospector.java:627)
at
org.apache.commons.betwixt.io.BeanReader.registerMultiMapping(BeanReader.java:215)
at org.apache.ddlutils.io.DatabaseIO.getReader(DatabaseIO.java:109)
at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:168)
... 2 more
=== ... while reading input: ===================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<database name="bookstore">
<table name="author">
<column name="author_id" type="INTEGER" primaryKey="true"
required="true"/>
<column name="name" type="VARCHAR" size="50" required="true"/>
<column name="organisation" type="VARCHAR" size="50" required="false"/>
</table>
<table name="book">
<column name="book_id" type="INTEGER" required="true"
primaryKey="true" autoIncrement="true"/>
<column name="isbn" type="VARCHAR" size="15" required="true"/>
<column name="author_id" type="INTEGER" required="true"/>
<column name="title" type="VARCHAR" size="255" defaultValue="N/A"
required="true"/>
<foreign-key foreignTable="author">
<reference local="author_id" foreign="author_id"/>
</foreign-key>
<index name="book_isbn">
<index-column name="isbn"/>
</index>
</table>
<table name="coltype">
<column name="COL_INTEGER" primaryKey="false" required="false"
type="INTEGER"/>
<column name="COL_FLOAT" primaryKey="false" required="false"
type="FLOAT"/>
<column name="COL_DECIMAL" primaryKey="false" required="false"
scale="3" size="15" type="DECIMAL"/>
<column name="COL_DEC_NOSCALE" primaryKey="false" required="false"
size="15" type="DECIMAL"/>
<column name="COL_CHAR" primaryKey="false" required="false"
size="15" type="CHAR"/>
<column name="COL_VARCHAR" primaryKey="false" required="false"
size="15" type="VARCHAR"/>
<column name="COL_DATE" primaryKey="false" required="false"
type="DATE"/>
<column name="COL_TIME" primaryKey="false" required="false"
type="TIME"/>
<column name="COL_TIMESTAMP" primaryKey="false" required="false"
type="TIMESTAMP"/>
</table>
</database>
================================================================
I hope all this does make sense to you, inspite of the last two traces
at the bottom being swallowed & thank again, George