Bug #14177 fixed : Using Java interface functions crashes Scilab in NWNI mode 54/18054/7
Simon Marchetto [Tue, 5 Jul 2016 13:46:27 +0000 (15:46 +0200)]
Change-Id: I0ace34cd5e6d1fe5f62eb0bc68a746075087f4a8

scilab/modules/external_objects_java/src/cpp/ScilabJavaEnvironment.cpp
scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.dia.ref [new file with mode: 0644]
scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.tst [new file with mode: 0644]

index b364340..6a5540e 100644 (file)
@@ -35,6 +35,7 @@
 extern "C" {
 #include "getScilabJavaVM.h"
 #include "sci_tmpdir.h"
+#include "configvariable_interface.h"
 }
 
 namespace org_scilab_modules_external_objects_java
@@ -63,6 +64,10 @@ ScilabJavaEnvironment::~ScilabJavaEnvironment()
 
 int ScilabJavaEnvironment::start()
 {
+    if (getScilabMode() == SCILAB_NWNI)
+    {
+        throw ScilabJavaException(__LINE__, __FILE__, "'Java from Scilab' module is disabled in -nwni mode");
+    }
     if (envId == -1)
     {
         instance = new ScilabJavaEnvironment();
diff --git a/scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.dia.ref b/scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.dia.ref
new file mode 100644 (file)
index 0000000..6a83003
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises -
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+//<-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14177 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14177
+//
+// <-- Short Description -->
+// Using Java interface functions crashes Scilab in NWNI mode
+//
+ierr = execstr("jcompile()", "errcatch");
+assert_checkequal(ierr, 999);
diff --git a/scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.tst b/scilab/modules/external_objects_java/tests/nonreg_tests/bug_14177.tst
new file mode 100644 (file)
index 0000000..1db1a3a
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises -
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+//<-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14177 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14177
+//
+// <-- Short Description -->
+// Using Java interface functions crashes Scilab in NWNI mode
+//
+
+ierr = execstr("jcompile()", "errcatch");
+assert_checkequal(ierr, 999);