docs: public Object createNewInstance(Class[] types, Object[] args)
      {
          try
          {
              Object result;
              // create an instance of the target class
              if (types != null)
              {
                  result = ClassHelper.newInstance(getClassToServe(), types, args, true);
              }
              else
              {
                  result = ClassHelper.newInstance(getClassToServe(), true);
              }
              // if defined in OJB.properties all instances are wrapped by an interceptor
              result = InterceptorFactory.getInstance().createInterceptorFor(result);
              return result;
  
          }
          catch (InstantiationException e)
          {
              getLogger().error("ConfigurableFactory can't instantiate class " +
                      getClassToServe() + buildArgumentString(types, args), e);
              throw new PersistenceBrokerException(e);
          }
          catch (IllegalAccessException e)
          {
              getLogger().error("ConfigurableFactory can't access constructor for class " +
                      getClassToServe() + buildArgumentString(types, args), e);
              throw new PersistenceBrokerException(e);
          }
          catch (Exception e)
          {
              getLogger().error("ConfigurableFactory instantiation failed for class " +
                      getClassToServe() + buildArgumentString(types, args), e);
              throw new PersistenceBrokerException(e);
          }
      }