OSDN Git Service

*修正
authorseraphy <seraphy@5b6e9025-a2e8-4882-b233-f889982098c5>
Fri, 18 Feb 2011 03:49:30 +0000 (03:49 +0000)
committerseraphy <seraphy@5b6e9025-a2e8-4882-b233-f889982098c5>
Fri, 18 Feb 2011 03:49:30 +0000 (03:49 +0000)
 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

src/charactermanaj/model/AppConfig.java
src/charactermanaj/model/RecentData.java
src/charactermanaj/model/WorkingSet.java
src/charactermanaj/ui/PartsManageDialog.java

index 1990c12..8afe40b 100644 (file)
@@ -128,7 +128,7 @@ public final class AppConfig {
                        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
index 6e0c044..b0398b4 100644 (file)
@@ -1,12 +1,12 @@
 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
@@ -48,11 +48,8 @@ public class RecentData implements Serializable {
                \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
@@ -65,8 +62,6 @@ public class RecentData implements Serializable {
                this.appVersion = appVersion;\r
        }\r
 \r
-       // TODO: シリアライズ互換性\r
-       \r
        public URI getDocBase() {\r
                return docBase;\r
        }\r
index a170f54..6a73768 100644 (file)
@@ -7,7 +7,6 @@ import java.io.ObjectStreamClass;
 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
@@ -28,7 +27,6 @@ public class WorkingSet implements Serializable {
        \r
        private PartsSet partsSet;\r
        \r
-       // TODO: シリアライズ互換性\r
        private URI characterDocBase;\r
        \r
        private File lastUsedSaveDir;\r
@@ -65,11 +63,8 @@ public class WorkingSet implements Serializable {
                \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
index f6b00ba..dec4cdd 100644 (file)
@@ -12,7 +12,6 @@ import java.awt.event.KeyEvent;
 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
@@ -596,7 +595,7 @@ public class PartsManageDialog extends JDialog {
                        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