When using Digester parsed a file with a directory that contained chinese
charset it will throw java.net.MalformedURLException.
-------------------------------------------------------------------------------------------------------------------------------
Key: DIGESTER-128
URL: https://issues.apache.org/jira/browse/DIGESTER-128
Project: Commons Digester
Issue Type: Bug
Affects Versions: 1.7
Environment: Windows XP
Eclipse 3.2
Reporter: jzwang
Priority: Critical
When I try to use Digester to parser a file I found if the file is in a
directory with Chinese(such as c:/tmp/中文/datasource.xml) char set it will throw
java.net.malformedURLException.
My code is here.
-------------------- SampleDigester.java -------------------
import java.io.IOException;
import java.util.Hashtable;
import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;
public class SampleDigester
{
private Hashtable dataSources = new Hashtable();
public static void main(String[] args)
{
SampleDigester sample = new SampleDigester();
try
{
sample.run();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void run() throws IOException, SAXException
{
Digester digester = new Digester();
digester.push(this);
digester.addCallMethod("datasources/datasource", "addDataSource", 5 );
digester.addCallParam("datasources/datasource/name", 0);
digester.addCallParam("datasources/datasource/driver", 1);
digester.addCallParam("datasources/datasource/url", 2);
digester.addCallParam("datasources/datasource/username", 3);
digester.addCallParam("datasources/datasource/password", 4);
// digester.parse("datasource.xml"); // ok
digester.parse("c:/tmp/中文/datasource.xml"); // failed
// digester.parse("c:/tmp/a b/datasource.xml"); // ok
}
public void addDataSource(String name,
String driver,
String url,
String userName,
String password)
{
DataSource dataSource = new DataSource(name, driver,url, userName,
password);
dataSources.put(name, dataSource);
System.out.println("DataSource added: " + name);
}
}
--------------------------- DataSource.java ---------------------
public class DataSource
{
private String name;
private String driver;
private String url;
private String password;
private String userName;
public DataSource(String name, String driver, String url, String userName,
String password)
{
this.name = name;
this.driver = driver;
this.url = url;
this.userName = userName;
this.password = password;
}
public String getName()
{
return name;
}
public String getDriver()
{
return driver;
}
public String getURL()
{
return url;
}
public String getPassword()
{
return password;
}
public String getUserName()
{
return userName;
}
}
--------------------------- DataSource.xml -------------
<?xml version="1.0"?>
<datasources>
<datasource>
<name>HsqlDataSource</name>
<driver>org.hsqldb.jdbcDriver</driver>
<url>jdbc:hsqldb:hsql://localhost</url>
<username>sa</username>
<password></password>
</datasource>
<datasource>
<name>OracleDataSource</name>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@localhost:1521:orcl</url>
<username>scott</username>
<password>tiger</password>
</datasource>
</datasources>
----------------------------------------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.