Explorar el Código

If we are loading a material from a J3O file, do not crash on missing material parameters, but log it instead.
Fixes test crash on any tests using cornellbox.j3o

shadowislord hace 11 años
padre
commit
bf2656abf3
Se han modificado 1 ficheros con 7 adiciones y 2 borrados
  1. 7 2
      jme3-core/src/main/java/com/jme3/material/Material.java

+ 7 - 2
jme3-core/src/main/java/com/jme3/material/Material.java

@@ -1320,8 +1320,13 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable {
                 param.setName(param.getName().substring(2));
             }
             
-            checkSetParam(param.getVarType(), param.getName());
-            paramValues.put(param.getName(), param);
+            if (def.getMaterialParam(name) == null) {
+                logger.log(Level.WARNING, "The material parameter is not defined: " + 
+                                          name + ". Ignoring..");
+            } else {
+                checkSetParam(param.getVarType(), param.getName());
+                paramValues.put(param.getName(), param);
+            }
         }
 
         if (applyDefaultValues) {