Ensure we have a BufferedInputStream when loading presets.
[debian/openrocket] / core / src / net / sf / openrocket / preset / xml / OpenRocketComponentLoader.java
index a84f7f68aa0e6cff4c2449175fa1f67c20a25326..a27712c7f0520da2727e2c9e31eedb07377b92f8 100644 (file)
@@ -1,10 +1,10 @@
 package net.sf.openrocket.preset.xml;
 
+import java.io.BufferedInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Collection;
 import java.util.List;
-import java.util.Set;
 
 import javax.xml.bind.JAXBException;
 
@@ -23,17 +23,14 @@ public class OpenRocketComponentLoader  implements Loader<ComponentPreset> {
        public Collection<ComponentPreset> load(InputStream stream,     String filename) {
 
                log.debug("Loading presets from file " + filename);
-
-               Set<String> favorites = Application.getPreferences().getComponentFavorites();
+               
+               if ( ! (stream instanceof BufferedInputStream) ) {
+                       stream = new BufferedInputStream(stream);
+               }
 
                try {
                        List<ComponentPreset> presets;
-                       presets = new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream));
-                       for( ComponentPreset preset : presets ) {
-                               if ( favorites.contains(preset.preferenceKey())) {
-                                       preset.setFavorite(true);
-                               }
-                       }                               
+                       presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets();
                        log.debug("ComponentPreset file " + filename + " contained " + presets.size() + " presets");
                        return presets;
                } catch (JAXBException e) {