URL#toURI()の変換時、URL表現でパスに空白がある場合に正しくURIに変換できず例外となる。
URLがシリアライズされており、もともとFile#toURLで変換していたため、空白を含む形式で保存されている。(File#toURLは非推奨であった。)
URL#getPath() -> File#ctor() -> File#toURI() のステップを踏むことで回避。
git-svn-id: https://svn.sourceforge.jp/svnroot/charactermanaj/trunk@7
5b6e9025-a2e8-4882-b233-
f889982098c5
File codeBase = ConfigurationDirUtilities.getApplicationBaseDir();\r
File userDataDir = ConfigurationDirUtilities.getUserDataDir();\r
URI[] uris = {\r
- getClass().getResource("/" + CONFIG_NAME).toURI(),\r
+ new File(getClass().getResource("/" + CONFIG_NAME).getPath()).toURI(),\r
new File(codeBase, CONFIG_NAME).getCanonicalFile().toURI(),\r
new File(userDataDir, CONFIG_NAME).toURI(),\r
};\r
package charactermanaj.model;\r
\r
+import java.io.File;\r
import java.io.IOException;\r
import java.io.ObjectInputStream;\r
import java.io.ObjectInputStream.GetField;\r
import java.io.ObjectStreamClass;\r
import java.io.Serializable;\r
import java.net.URI;\r
-import java.net.URISyntaxException;\r
import java.net.URL;\r
import java.util.logging.Level;\r
import java.util.logging.Logger;\r
\r
Object anyDocBase = fields.get("docBase", null);\r
if (anyDocBase != null && anyDocBase instanceof URL) {\r
- try {\r
- anyDocBase = ((URL) anyDocBase).toURI();\r
- } catch (URISyntaxException ex) {\r
- anyDocBase = null;\r
- }\r
+ File file = new File(((URL) anyDocBase).getPath());\r
+ anyDocBase = file.toURI();\r
}\r
docBase = (URI) anyDocBase;\r
}\r
this.appVersion = appVersion;\r
}\r
\r
- // TODO: シリアライズ互換性\r
- \r
public URI getDocBase() {\r
return docBase;\r
}\r
import java.io.Serializable;\r
import java.io.ObjectInputStream.GetField;\r
import java.net.URI;\r
-import java.net.URISyntaxException;\r
import java.net.URL;\r
import java.util.Map;\r
import java.util.logging.Level;\r
\r
private PartsSet partsSet;\r
\r
- // TODO: シリアライズ互換性\r
private URI characterDocBase;\r
\r
private File lastUsedSaveDir;\r
\r
Object anyDocBase = fields.get("characterDocBase", null);\r
if (anyDocBase != null && anyDocBase instanceof URL) {\r
- try {\r
- anyDocBase = ((URL) anyDocBase).toURI();\r
- } catch (URISyntaxException ex) {\r
- anyDocBase = null;\r
- }\r
+ File file = new File(((URL) anyDocBase).getPath());\r
+ anyDocBase = file.toURI();\r
}\r
// ver0.95からURI, それ以前はURL\r
characterDocBase = (URI) anyDocBase;\r
import java.awt.event.WindowAdapter;\r
import java.awt.event.WindowEvent;\r
import java.net.URI;\r
-import java.net.URL;\r
import java.sql.Timestamp;\r
import java.util.Arrays;\r
import java.util.Collections;\r
return;\r
}\r
try {\r
- URI uri = new URL(homepage).toURI();\r
+ URI uri = new URI(homepage);\r
DesktopUtilities.browse(uri);\r
\r
} catch (Exception ex) {\r