From 3757bf5fe9d1af9301cbad5ded8754bd831715a6 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 02:44:39 +0000 Subject: [PATCH] dedicated to DennisBergkamp i tried to create a small workaround for the problem, but because i don't get the same error as you, could you try it, please? --- .gitattributes | 1 + src/forge/DeckIO.java | 16 +++++----- src/forge/Gui_DeckEditor_Menu.java | 33 +++++++++++--------- src/forge/Gui_Quest_DeckEditor_Menu.java | 5 ++- src/forge/IO.java | 5 ++- src/forge/NewIO.java | 5 ++- src/forge/QuestData.java | 2 +- src/forge/_ObjectInputStream.java | 39 ++++++++++++++++++++++++ 8 files changed, 78 insertions(+), 28 deletions(-) create mode 100644 src/forge/_ObjectInputStream.java diff --git a/.gitattributes b/.gitattributes index 69306b2beb2..8c1459ee88d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -198,6 +198,7 @@ src/forge/Time.java svneol=native#text/plain src/forge/UndoCommand.java svneol=native#text/plain src/forge/Wait.java svneol=native#text/plain src/forge/WinLose.java svneol=native#text/plain +src/forge/_ObjectInputStream.java svneol=native#text/plain src/forge/error/ErrorViewer.java svneol=native#text/plain src/forge/error/ExceptionHandler.java -text svneol=native#text/plain src/forge/gui/ForgeAction.java svneol=native#text/plain diff --git a/src/forge/DeckIO.java b/src/forge/DeckIO.java index 85518beb70b..817f743a076 100644 --- a/src/forge/DeckIO.java +++ b/src/forge/DeckIO.java @@ -1,9 +1,7 @@ + package forge; - - - import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -39,7 +37,7 @@ public class DeckIO { //DeckIO io = new DeckIO("booster-decks"); // io.writeBoosterDeck(deck); // io.close(); - + // io.deleteBoosterDeck("0"); // System.out.println(io.getBoosterDecks().keySet().size()); // io.close(); @@ -168,7 +166,7 @@ public class DeckIO { //~ if(!file.exists()) return; - ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); + ObjectInputStream in = new _ObjectInputStream(new FileInputStream(file)); deckList = (ArrayList) in.readObject(); boosterMap = (Map) in.readObject(); @@ -183,9 +181,9 @@ public class DeckIO { private void writeFile() { try { //~ - if(file == null) { - return; - } + if(file == null) { + return; + } //~ if(!file.exists()) file.createNewFile(); @@ -201,4 +199,4 @@ public class DeckIO { throw new RuntimeException("DeckIO : write() error, " + ex.getMessage()); } } -}//DeckIO \ No newline at end of file +}//DeckIO diff --git a/src/forge/Gui_DeckEditor_Menu.java b/src/forge/Gui_DeckEditor_Menu.java index 2764f930b50..e4b530176ed 100644 --- a/src/forge/Gui_DeckEditor_Menu.java +++ b/src/forge/Gui_DeckEditor_Menu.java @@ -1,4 +1,7 @@ + package forge; + + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -23,20 +26,20 @@ import forge.error.ErrorViewer; import forge.properties.ForgeProps; import forge.properties.NewConstants; -interface DeckDisplay -{ - public void updateDisplay(CardList top, CardList bottom); - //top shows available card pool - //if constructed, top shows all cards - //if sealed, top shows 5 booster packs - //if draft, top shows cards that were chosen - public CardList getTop(); - - //bottom shows cards that the user has chosen for his library - public CardList getBottom(); - - public void setTitle(String message); +interface DeckDisplay { + public void updateDisplay(CardList top, CardList bottom); + + //top shows available card pool + //if constructed, top shows all cards + //if sealed, top shows 5 booster packs + //if draft, top shows cards that were chosen + public CardList getTop(); + + //bottom shows cards that the user has chosen for his library + public CardList getBottom(); + + public void setTitle(String message); } public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants { @@ -326,7 +329,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants { Object check = null; try { - ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); + ObjectInputStream in = new _ObjectInputStream(new FileInputStream(file)); check = in.readObject(); in.close(); @@ -1057,4 +1060,4 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants { } }); }//setupMenu() -} \ No newline at end of file +} diff --git a/src/forge/Gui_Quest_DeckEditor_Menu.java b/src/forge/Gui_Quest_DeckEditor_Menu.java index a43277f9508..42947644b67 100644 --- a/src/forge/Gui_Quest_DeckEditor_Menu.java +++ b/src/forge/Gui_Quest_DeckEditor_Menu.java @@ -1,4 +1,7 @@ + package forge; + + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -261,7 +264,7 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar { Object check = null; try { - ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); + ObjectInputStream in = new _ObjectInputStream(new FileInputStream(file)); check = in.readObject(); in.close(); diff --git a/src/forge/IO.java b/src/forge/IO.java index 515b5850b25..cc808b821f6 100644 --- a/src/forge/IO.java +++ b/src/forge/IO.java @@ -1,4 +1,7 @@ + package forge; + + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -36,7 +39,7 @@ public class IO { // Map has unchecked cast private void readMap() { try { - ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); + ObjectInputStream in = new _ObjectInputStream(new FileInputStream(file)); map = (Map) in.readObject(); in.close(); } catch(Exception ex) { diff --git a/src/forge/NewIO.java b/src/forge/NewIO.java index 8578da8c9b3..5f3cd3a3b19 100644 --- a/src/forge/NewIO.java +++ b/src/forge/NewIO.java @@ -1,4 +1,7 @@ + package forge; + + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -63,7 +66,7 @@ public class NewIO { private ObjectInputStream getReader() { try { - return new ObjectInputStream(new FileInputStream(file)); + return new _ObjectInputStream(new FileInputStream(file)); } catch(IOException ex) { ErrorViewer.showError(ex); throw new RuntimeException("IO : getReader() - error - " + ex); diff --git a/src/forge/QuestData.java b/src/forge/QuestData.java index 6a79243afeb..74106eae00d 100644 --- a/src/forge/QuestData.java +++ b/src/forge/QuestData.java @@ -195,7 +195,7 @@ public class QuestData implements NewConstants { static public QuestData loadData() { try { //read file "questData" - ObjectInputStream in = new ObjectInputStream(new FileInputStream(ForgeProps.getFile(QUEST.DATA))); + ObjectInputStream in = new _ObjectInputStream(new FileInputStream(ForgeProps.getFile(QUEST.DATA))); Object o = in.readObject(); in.close(); diff --git a/src/forge/_ObjectInputStream.java b/src/forge/_ObjectInputStream.java new file mode 100644 index 00000000000..711294d54e6 --- /dev/null +++ b/src/forge/_ObjectInputStream.java @@ -0,0 +1,39 @@ +/** + * _ObjectInputStream.java + * + * Created on 29.10.2009 + */ + +package forge; + + +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; + + +/** + * The class _ObjectInputStream. + * + * @version V0.0 29.10.2009 + * @author Clemens Koza + */ +public class _ObjectInputStream extends ObjectInputStream { + public _ObjectInputStream() throws IOException { + super(); + enableResolveObject(true); + } + + public _ObjectInputStream(InputStream is) throws IOException { + super(is); + enableResolveObject(true); + } + + @Override + protected Object resolveObject(Object obj) throws IOException { + Class c = obj.getClass().getComponentType(); + if(c != null && "Deck".equals(c.getName())) { + return new Deck[((Object[]) obj).length]; + } else return obj; + } +}