diff --git a/src-core/src/org/openbravo/base/HttpBaseServlet.java b/src-core/src/org/openbravo/base/HttpBaseServlet.java
--- a/src-core/src/org/openbravo/base/HttpBaseServlet.java
+++ b/src-core/src/org/openbravo/base/HttpBaseServlet.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2001-2016 Openbravo S.L.U.
+ * Copyright (C) 2001-2018 Openbravo S.L.U.
  * Licensed under the Apache Software License version 2.0
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to  in writing,  software  distributed
@@ -645,7 +645,7 @@
       parserClassName = "org.apache.xerces.parsers.SAXParser";
     }
     try {
-      return (XMLReader) Class.forName(parserClassName).newInstance();
+      return (XMLReader) Class.forName(parserClassName).getDeclaredConstructor().newInstance();
     } catch (Exception e) {
       throw new ServletException(e);
     }
diff --git a/src-core/src/org/openbravo/buildvalidation/BuildValidationHandler.java b/src-core/src/org/openbravo/buildvalidation/BuildValidationHandler.java
--- a/src-core/src/org/openbravo/buildvalidation/BuildValidationHandler.java
+++ b/src-core/src/org/openbravo/buildvalidation/BuildValidationHandler.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2010-2016 Openbravo S.L.U.
+ * Copyright (C) 2010-2018 Openbravo S.L.U.
  * Licensed under the Apache Software License version 2.0
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to  in writing,  software  distributed
@@ -86,7 +86,8 @@
       try {
         Class<?> myClass = Class.forName(s);
         if (BuildValidation.class.isAssignableFrom(myClass)) {
-          BuildValidation instance = (BuildValidation) myClass.newInstance();
+          BuildValidation instance = (BuildValidation) myClass.getDeclaredConstructor()
+              .newInstance();
           instance.preExecute(modulesVersionMap);
           errors = instance.getErrors();
         }
diff --git a/src-core/src/org/openbravo/database/ExternalConnectionPool.java b/src-core/src/org/openbravo/database/ExternalConnectionPool.java
--- a/src-core/src/org/openbravo/database/ExternalConnectionPool.java
+++ b/src-core/src/org/openbravo/database/ExternalConnectionPool.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2014-2016 Openbravo SLU 
+ * All portions are Copyright (C) 2014-2018 Openbravo SLU 
  * All Rights Reserved. 
  ************************************************************************
  */
@@ -39,16 +39,13 @@
    * @param externalConnectionPoolClassName
    *          The full class name of the external connection pool
    * @return An instance of the external connection pool
-   * @throws InstantiationException
-   * @throws IllegalAccessException
-   * @throws ClassNotFoundException
+   * @throws ReflectiveOperationException
    */
-  public final synchronized static ExternalConnectionPool getInstance(
-      String externalConnectionPoolClassName) throws InstantiationException,
-      IllegalAccessException, ClassNotFoundException {
+  public static final synchronized ExternalConnectionPool getInstance(
+      String externalConnectionPoolClassName) throws ReflectiveOperationException {
     if (instance == null) {
       instance = (ExternalConnectionPool) Class.forName(externalConnectionPoolClassName)
-          .newInstance();
+          .getDeclaredConstructor().newInstance();
     }
     return instance;
   }
diff --git a/src-core/src/org/openbravo/modulescript/ModuleScriptHandler.java b/src-core/src/org/openbravo/modulescript/ModuleScriptHandler.java
--- a/src-core/src/org/openbravo/modulescript/ModuleScriptHandler.java
+++ b/src-core/src/org/openbravo/modulescript/ModuleScriptHandler.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2010-2015 Openbravo S.L.U.
+ * Copyright (C) 2010-2018 Openbravo S.L.U.
  * Licensed under the Apache Software License version 2.0
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to  in writing,  software  distributed
@@ -60,7 +60,7 @@
       try {
         Class<?> myClass = Class.forName(s);
         if (ModuleScript.class.isAssignableFrom(myClass)) {
-          ModuleScript instance = (ModuleScript) myClass.newInstance();
+          ModuleScript instance = (ModuleScript) myClass.getDeclaredConstructor().newInstance();
           instance.preExecute(getModulesVersionMap());
         }
       } catch (Exception e) {
diff --git a/src-wad/src/org/openbravo/wad/WadUtility.java b/src-wad/src/org/openbravo/wad/WadUtility.java
--- a/src-wad/src/org/openbravo/wad/WadUtility.java
+++ b/src-wad/src/org/openbravo/wad/WadUtility.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2001-2017 Openbravo SLU 
+ * All portions are Copyright (C) 2001-2018 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -22,6 +22,7 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
@@ -442,7 +443,7 @@
     } else {
       try {
         Class<?> c = Class.forName(classname);
-        control = (WADControl) c.newInstance();
+        control = (WADControl) c.getDeclaredConstructor().newInstance();
         control.setReference(parentRef);
         control.setSubreference(subRef);
       } catch (ClassNotFoundException ex) {
@@ -455,6 +456,12 @@
       } catch (IllegalAccessException e) {
         log4j.warn("Illegal access class: " + classname);
         control = new WADControl();
+      } catch (InvocationTargetException e) {
+        log4j.warn("Exception thrown by default constructor of class: " + classname);
+        control = new WADControl();
+      } catch (NoSuchMethodException e) {
+        log4j.warn("Could not find a default constructor for class: " + classname);
+        control = new WADControl();
       }
     }
     return control;
diff --git a/src/org/openbravo/base/model/ModelProvider.java b/src/org/openbravo/base/model/ModelProvider.java
--- a/src/org/openbravo/base/model/ModelProvider.java
+++ b/src/org/openbravo/base/model/ModelProvider.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2016 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2018 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -374,7 +374,8 @@
           String classname = rs.getString(1);
           Class<?> myClass = Class.forName(classname);
           if (org.openbravo.base.model.domaintype.BaseDomainType.class.isAssignableFrom(myClass)) {
-            BaseDomainType classInstance = (BaseDomainType) myClass.newInstance();
+            BaseDomainType classInstance = (BaseDomainType) myClass.getDeclaredConstructor()
+                .newInstance();
             for (Class<?> aClass : classInstance.getClasses()) {
               sessionFactoryController.addAdditionalClasses(aClass);
             }
diff --git a/src/org/openbravo/base/model/Reference.java b/src/org/openbravo/base/model/Reference.java
--- a/src/org/openbravo/base/model/Reference.java
+++ b/src/org/openbravo/base/model/Reference.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2011 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2018 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -135,7 +135,7 @@
     }
     try {
       final Class<?> clz = OBClassLoader.getInstance().loadClass(modelImplementationClass);
-      domainType = (DomainType) clz.newInstance();
+      domainType = (DomainType) clz.getDeclaredConstructor().newInstance();
       domainType.setReference(this);
     } catch (Exception e) {
       throw new OBException("Not able to create domain type " + getModelImpl() + " for reference "
diff --git a/src/org/openbravo/base/provider/OBProvider.java b/src/org/openbravo/base/provider/OBProvider.java
--- a/src/org/openbravo/base/provider/OBProvider.java
+++ b/src/org/openbravo/base/provider/OBProvider.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2018 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -241,7 +241,7 @@
 
       // instantiate the class
       try {
-        final Object value = instanceClass.newInstance();
+        final Object value = instanceClass.getDeclaredConstructor().newInstance();
         if (singleton) {
           theInstance = value;
         }
