[committed] BinaryExporter.write(Enum) bug

If enum has null value and it is saved by BinaryExporter.

It can't be restored.



patch


Index: src/com/jme/util/export/binary/BinaryOutputCapsule.java
===================================================================
--- src/com/jme/util/export/binary/BinaryOutputCapsule.java   (revision 4533)
+++ src/com/jme/util/export/binary/BinaryOutputCapsule.java   (working copy)
@@ -870,7 +870,6 @@
         if (value == defVal)
             return;
         if (value == null) {
-            write(NULL_OBJECT);
             return;
         } else {
             write(value.name(), name, null);



Here is the test code


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import com.jme.util.export.InputCapsule;
import com.jme.util.export.JMEExporter;
import com.jme.util.export.JMEImporter;
import com.jme.util.export.OutputCapsule;
import com.jme.util.export.Savable;
import com.rontab.bim.loader.JmeUtil;

public class TestEnum {
   public enum E {
      A, B, C
   }
   
   public class Sav implements Savable {

      @Override
      public Class getClassTag() {
         return getClass();
      }

      @Override
      public void read(JMEImporter im) throws IOException {
         InputCapsule in = im.getCapsule(this);
         in.readEnum("enum", E.class, null);
      }

      @Override
      public void write(JMEExporter ex) throws IOException {
         OutputCapsule out = ex.getCapsule(this);
         out.write((E)null, "enum", null);
      }
   }
   
   public static void main(String[] args) {
      HitCondition cond = new HitCondition();
      File file = new File("C:/test.rb");
      try {
         JmeUtil.instance().save(cond, file, false);
         JmeUtil.instance().load(new FileInputStream(file));
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}