You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2022/07/08 12:48:54 UTC

[turbine-core] 01/04: Fix deprecation warnings

This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/turbine-core.git

commit 8450f94c802ed121992eea35e5b050d74c9d1737
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Fri Jul 8 14:44:45 2022 +0200

    Fix deprecation warnings
---
 .../apache/turbine/pipeline/XmlValveAdapter.java   |   2 +-
 .../turbine/services/BaseInitableBroker.java       |  12 +-
 .../apache/turbine/services/BaseServiceBroker.java |   8 +-
 .../TurbineAssemblerBrokerService.java             |   2 +-
 .../assemblerbroker/util/java/JavaBaseFactory.java |   6 +-
 .../services/avaloncomponent/Log4j2Logger.java     | 247 ---------------------
 .../TurbineYaafiComponentService.java              |   1 +
 .../services/security/DefaultSecurityService.java  |   2 +-
 src/test/org/apache/turbine/TurbineTest.java       |   3 +
 .../apache/turbine/om/MockRetrieverFactory.java    |   2 +
 src/test/org/apache/turbine/om/OMToolTest.java     |   2 +
 .../pipeline/DefaultSessionTimeoutValveTest.java   |   2 +
 .../pipeline/DefaultSetEncodingValveTest.java      |   4 +-
 .../services/cache/FulcrumCacheComponentTest.java  |   2 +-
 .../rundata/DefaultTurbineRunDataTest.java         |   2 +-
 .../schedule/QuartzSchedulerServiceTest.java       |   7 +-
 .../TurbineNonPersistentSchedulerServiceTest.java  |   5 +-
 17 files changed, 30 insertions(+), 279 deletions(-)

diff --git a/src/java/org/apache/turbine/pipeline/XmlValveAdapter.java b/src/java/org/apache/turbine/pipeline/XmlValveAdapter.java
index f0cc6019..1509e7e3 100644
--- a/src/java/org/apache/turbine/pipeline/XmlValveAdapter.java
+++ b/src/java/org/apache/turbine/pipeline/XmlValveAdapter.java
@@ -35,7 +35,7 @@ public class XmlValveAdapter extends XmlAdapter<XmlValve, Valve>
     public Valve unmarshal(XmlValve xmlValve) throws Exception
     {
         Class<?> valveClass = Class.forName(xmlValve.getClazz());
-        return (Valve) valveClass.newInstance();
+        return (Valve) valveClass.getDeclaredConstructor().newInstance();
     }
 
     /**
diff --git a/src/java/org/apache/turbine/services/BaseInitableBroker.java b/src/java/org/apache/turbine/services/BaseInitableBroker.java
index 6759c73c..61acbf48 100644
--- a/src/java/org/apache/turbine/services/BaseInitableBroker.java
+++ b/src/java/org/apache/turbine/services/BaseInitableBroker.java
@@ -233,19 +233,13 @@ public abstract class BaseInitableBroker
         {
             try
             {
-                initable = (Initable) Class.forName(className).newInstance();
+                initable = (Initable) Class.forName(className).getDeclaredConstructor().newInstance();
             }
-
-                    // those two errors must be passed to the VM
-            catch (ThreadDeath t)
+            // those two errors must be passed to the VM
+            catch (ThreadDeath | OutOfMemoryError t)
             {
                 throw t;
             }
-            catch (OutOfMemoryError t)
-            {
-                throw t;
-            }
-
             catch (Throwable t)
             {
                 // Used to indicate error condition.
diff --git a/src/java/org/apache/turbine/services/BaseServiceBroker.java b/src/java/org/apache/turbine/services/BaseServiceBroker.java
index 0d08424c..07857c84 100644
--- a/src/java/org/apache/turbine/services/BaseServiceBroker.java
+++ b/src/java/org/apache/turbine/services/BaseServiceBroker.java
@@ -619,7 +619,7 @@ public abstract class BaseServiceBroker implements ServiceBroker
 
                         try
                         {
-                            service = (Service) clazz.newInstance();
+                            service = (Service) clazz.getDeclaredConstructor().newInstance();
 
                             // check if the newly created service is also a
                             // service provider - if so then remember it
@@ -638,11 +638,7 @@ public abstract class BaseServiceBroker implements ServiceBroker
                             throw new InstantiationException("Class " + clazz +
                                     " doesn't implement the Service interface", e);
                         }
-                        catch (ThreadDeath t)
-                        {
-                            throw t;
-                        }
-                        catch (OutOfMemoryError t)
+                        catch (ThreadDeath | OutOfMemoryError t)
                         {
                             throw t;
                         }
diff --git a/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java b/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
index f78fa27e..7992c6fc 100644
--- a/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
+++ b/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
@@ -111,7 +111,7 @@ public class TurbineAssemblerBrokerService
             {
                 @SuppressWarnings("unchecked")
                 AssemblerFactory<? extends Assembler> af =
-                    (AssemblerFactory<? extends Assembler>) Class.forName(factory).newInstance();
+                    (AssemblerFactory<? extends Assembler>) Class.forName(factory).getDeclaredConstructor().newInstance();
                 registerFactory(af);
             }
             // these must be passed to the VM
diff --git a/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java b/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
index 32dbdb41..0bbe528f 100644
--- a/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
+++ b/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
@@ -1,6 +1,8 @@
 package org.apache.turbine.services.assemblerbroker.util.java;
 
 
+import java.lang.reflect.InvocationTargetException;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -91,7 +93,7 @@ public abstract class JavaBaseFactory<T extends Assembler>
                             servClass = _servClass;
                         }
                     }
-                    assembler = servClass.newInstance();
+                    assembler = servClass.getDeclaredConstructor().newInstance();
                     break; // for()
                 }
                 catch (ClassNotFoundException cnfe)
@@ -105,7 +107,7 @@ public abstract class JavaBaseFactory<T extends Assembler>
                     log.debug("{}: No Class Definition found", className);
                 }
                 // With ClassCastException, InstantiationException we hit big problems
-                catch (ClassCastException | InstantiationException | IllegalAccessException e)
+                catch (ClassCastException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e)
                 {
                     // This means trouble!
                     // Alternatively we can throw this exception so
diff --git a/src/java/org/apache/turbine/services/avaloncomponent/Log4j2Logger.java b/src/java/org/apache/turbine/services/avaloncomponent/Log4j2Logger.java
deleted file mode 100644
index 50987967..00000000
--- a/src/java/org/apache/turbine/services/avaloncomponent/Log4j2Logger.java
+++ /dev/null
@@ -1,247 +0,0 @@
-package org.apache.turbine.services.avaloncomponent;
-
-import org.apache.avalon.framework.logger.Logger;
-import org.apache.logging.log4j.LogManager;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  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 under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * A Log4J2 wrapper class for Logger.
- *
- * Use org.apache.fulcrum.yaafi.framework.logger.Log4j2Logger instead.
- * 
- * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
- */
-@Deprecated
-public final class Log4j2Logger
-        implements Logger
-{
-    // underlying implementation
-    private final org.apache.logging.log4j.Logger m_logger;
-
-    /**
-     * Create a logger that delegates to specified category.
-     *
-     * @param logImpl
-     *            the category to delegate to
-     */
-    public Log4j2Logger(final org.apache.logging.log4j.Logger logImpl)
-    {
-        m_logger = logImpl;
-    }
-
-    /**
-     * Log a debug message.
-     *
-     * @param message
-     *            the message
-     */
-    @Override
-    public void debug(final String message)
-    {
-        m_logger.debug(message);
-    }
-
-    /**
-     * Log a debug message.
-     *
-     * @param message
-     *            the message
-     * @param throwable
-     *            the throwable
-     */
-    @Override
-    public void debug(final String message, final Throwable throwable)
-    {
-        m_logger.debug(message, throwable);
-    }
-
-    /**
-     * Determine if messages of priority "debug" will be logged.
-     *
-     * @return true if "debug" messages will be logged
-     */
-    @Override
-    public boolean isDebugEnabled()
-    {
-        return m_logger.isDebugEnabled();
-    }
-
-    /**
-     * Log a info message.
-     *
-     * @param message
-     *            the message
-     */
-    @Override
-    public void info(final String message)
-    {
-        m_logger.info(message);
-    }
-
-    /**
-     * Log a info message.
-     *
-     * @param message
-     *            the message
-     * @param throwable
-     *            the throwable
-     */
-    @Override
-    public void info(final String message, final Throwable throwable)
-    {
-        m_logger.info(message, throwable);
-    }
-
-    /**
-     * Determine if messages of priority "info" will be logged.
-     *
-     * @return true if "info" messages will be logged
-     */
-    @Override
-    public boolean isInfoEnabled()
-    {
-        return m_logger.isInfoEnabled();
-    }
-
-    /**
-     * Log a warn message.
-     *
-     * @param message
-     *            the message
-     */
-    @Override
-    public void warn(final String message)
-    {
-        m_logger.warn(message);
-    }
-
-    /**
-     * Log a warn message.
-     *
-     * @param message
-     *            the message
-     * @param throwable
-     *            the throwable
-     */
-    @Override
-    public void warn(final String message, final Throwable throwable)
-    {
-        m_logger.warn(message, throwable);
-    }
-
-    /**
-     * Determine if messages of priority "warn" will be logged.
-     *
-     * @return true if "warn" messages will be logged
-     */
-    @Override
-    public boolean isWarnEnabled()
-    {
-        return m_logger.isWarnEnabled();
-    }
-
-    /**
-     * Log a error message.
-     *
-     * @param message
-     *            the message
-     */
-    @Override
-    public void error(final String message)
-    {
-        m_logger.error(message);
-    }
-
-    /**
-     * Log a error message.
-     *
-     * @param message
-     *            the message
-     * @param throwable
-     *            the throwable
-     */
-    @Override
-    public void error(final String message, final Throwable throwable)
-    {
-        m_logger.error(message, throwable);
-    }
-
-    /**
-     * Determine if messages of priority "error" will be logged.
-     *
-     * @return true if "error" messages will be logged
-     */
-    @Override
-    public boolean isErrorEnabled()
-    {
-        return m_logger.isErrorEnabled();
-    }
-
-    /**
-     * Log a fatalError message.
-     *
-     * @param message
-     *            the message
-     */
-    @Override
-    public void fatalError(final String message)
-    {
-        m_logger.fatal(message);
-    }
-
-    /**
-     * Log a fatalError message.
-     *
-     * @param message
-     *            the message
-     * @param throwable
-     *            the throwable
-     */
-    @Override
-    public void fatalError(final String message, final Throwable throwable)
-    {
-        m_logger.fatal(message, throwable);
-    }
-
-    /**
-     * Determine if messages of priority "fatalError" will be logged.
-     *
-     * @return true if "fatalError" messages will be logged
-     */
-    @Override
-    public boolean isFatalErrorEnabled()
-    {
-        return m_logger.isFatalEnabled();
-    }
-
-    /**
-     * Create a new child logger. The name of the child logger is
-     * [current-loggers-name].[passed-in-name] Throws
-     * <code>IllegalArgumentException</code> if name has an empty element name
-     *
-     * @param name
-     *            the subname of this logger
-     * @return the new logger
-     */
-    @Override
-    public Logger getChildLogger(final String name)
-    {
-        return new Log4j2Logger(LogManager.getLogger(m_logger.getName() + "." + name));
-    }
-}
diff --git a/src/java/org/apache/turbine/services/avaloncomponent/TurbineYaafiComponentService.java b/src/java/org/apache/turbine/services/avaloncomponent/TurbineYaafiComponentService.java
index e70ba9bd..1183bd8e 100644
--- a/src/java/org/apache/turbine/services/avaloncomponent/TurbineYaafiComponentService.java
+++ b/src/java/org/apache/turbine/services/avaloncomponent/TurbineYaafiComponentService.java
@@ -30,6 +30,7 @@ import org.apache.commons.configuration2.Configuration;
 import org.apache.fulcrum.yaafi.framework.container.ServiceContainer;
 import org.apache.fulcrum.yaafi.framework.factory.ServiceContainerConfiguration;
 import org.apache.fulcrum.yaafi.framework.factory.ServiceContainerFactory;
+import org.apache.fulcrum.yaafi.framework.logger.Log4j2Logger;
 import org.apache.logging.log4j.LogManager;
 import org.apache.turbine.services.InitializationException;
 import org.apache.turbine.services.InstantiationException;
diff --git a/src/java/org/apache/turbine/services/security/DefaultSecurityService.java b/src/java/org/apache/turbine/services/security/DefaultSecurityService.java
index 139787fb..7000b3bb 100644
--- a/src/java/org/apache/turbine/services/security/DefaultSecurityService.java
+++ b/src/java/org/apache/turbine/services/security/DefaultSecurityService.java
@@ -130,7 +130,7 @@ public class DefaultSecurityService
         try
         {
             this.userManager =
-                    (UserManager) Class.forName(userManagerClassName).newInstance();
+                    (UserManager) Class.forName(userManagerClassName).getDeclaredConstructor().newInstance();
 
             userManager.init(conf);
         }
diff --git a/src/test/org/apache/turbine/TurbineTest.java b/src/test/org/apache/turbine/TurbineTest.java
index ce246fd8..97e8ceb2 100644
--- a/src/test/org/apache/turbine/TurbineTest.java
+++ b/src/test/org/apache/turbine/TurbineTest.java
@@ -80,6 +80,7 @@ public class TurbineTest extends BaseTestCase
     }
 
     @Test
+    @Deprecated
     public void testDefaultInputEncoding() throws Exception
     {
         Turbine t = tc.getTurbine();
@@ -89,11 +90,13 @@ public class TurbineTest extends BaseTestCase
     }
 
     @Test
+    @Deprecated
     public void testNonDefaultEncoding()
     {
         Turbine t = tc.getTurbine();
         Turbine.getConfiguration().setProperty(TurbineConstants.PARAMETER_ENCODING_KEY, "UTF-8");
         assertNotNull(Turbine.getDefaultInputEncoding());
         assertEquals("UTF-8", Turbine.getDefaultInputEncoding());
+        t.destroy();
     }
 }
diff --git a/src/test/org/apache/turbine/om/MockRetrieverFactory.java b/src/test/org/apache/turbine/om/MockRetrieverFactory.java
index 2bd72a21..33e4539e 100644
--- a/src/test/org/apache/turbine/om/MockRetrieverFactory.java
+++ b/src/test/org/apache/turbine/om/MockRetrieverFactory.java
@@ -23,7 +23,9 @@ package org.apache.turbine.om;
  * This mocks a {@link RetrieverFactory}.
  *
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @deprecated Retriever and RetrieverFactory are deprecated
  */
+@Deprecated
 public class MockRetrieverFactory implements RetrieverFactory
 {
 
diff --git a/src/test/org/apache/turbine/om/OMToolTest.java b/src/test/org/apache/turbine/om/OMToolTest.java
index f50b0cf7..ab7bf33a 100644
--- a/src/test/org/apache/turbine/om/OMToolTest.java
+++ b/src/test/org/apache/turbine/om/OMToolTest.java
@@ -35,7 +35,9 @@ import org.junit.Test;
  * This class tests the {@link OMTool} functionality.
  *
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @deprecated OMTool is deprecated
  */
+@Deprecated
 public class OMToolTest
 {
     private static TurbineConfig tc = null;
diff --git a/src/test/org/apache/turbine/pipeline/DefaultSessionTimeoutValveTest.java b/src/test/org/apache/turbine/pipeline/DefaultSessionTimeoutValveTest.java
index dfe3929e..214c9db6 100644
--- a/src/test/org/apache/turbine/pipeline/DefaultSessionTimeoutValveTest.java
+++ b/src/test/org/apache/turbine/pipeline/DefaultSessionTimeoutValveTest.java
@@ -47,7 +47,9 @@ import org.junit.jupiter.api.Test;
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  * @version $Id: DefaultSessionTimeoutValveTest.java 1606111 2014-06-27
  *          14:46:47Z gk $
+ * @deprecated DefaultSessionTimeoutValve is deprecated
  */
+@Deprecated
 public class DefaultSessionTimeoutValveTest extends BaseTestCase
 {
     private static TurbineConfig tc = null;
diff --git a/src/test/org/apache/turbine/pipeline/DefaultSetEncodingValveTest.java b/src/test/org/apache/turbine/pipeline/DefaultSetEncodingValveTest.java
index 661e2c93..125f7e10 100644
--- a/src/test/org/apache/turbine/pipeline/DefaultSetEncodingValveTest.java
+++ b/src/test/org/apache/turbine/pipeline/DefaultSetEncodingValveTest.java
@@ -91,7 +91,7 @@ public class DefaultSetEncodingValveTest extends BaseTestCase
         pipeline.invoke(pipelineData);
 
         RunData runData = (RunData) pipelineData;
-        assertEquals(TurbineConstants.PARAMETER_ENCODING_DEFAULT, runData.getCharSet());
+        assertEquals(TurbineConstants.PARAMETER_ENCODING_DEFAULT, runData.getCharset().name());
     }
 
     /**
@@ -112,7 +112,7 @@ public class DefaultSetEncodingValveTest extends BaseTestCase
         pipeline.invoke(pipelineData);
         RunData runData = (RunData) pipelineData;
 
-        assertEquals("UTF-8", runData.getCharSet());
+        assertEquals("UTF-8", runData.getCharset().name());
     }
 
     @AfterAll
diff --git a/src/test/org/apache/turbine/services/cache/FulcrumCacheComponentTest.java b/src/test/org/apache/turbine/services/cache/FulcrumCacheComponentTest.java
index 2598ba1f..cb081ace 100644
--- a/src/test/org/apache/turbine/services/cache/FulcrumCacheComponentTest.java
+++ b/src/test/org/apache/turbine/services/cache/FulcrumCacheComponentTest.java
@@ -43,7 +43,7 @@ public class FulcrumCacheComponentTest extends BaseTestCase
     {
         ServiceManager serviceManager = TurbineServices.getInstance();
 		GlobalCacheService cache = (GlobalCacheService)serviceManager.getService(GlobalCacheService.ROLE);
-		CachedObject inputObject = new CachedObject(new Double(10.2));
+		CachedObject<Double> inputObject = new CachedObject<>(Double.valueOf(10.2));
 		cache.addObject("testObj",inputObject);
     }
 
diff --git a/src/test/org/apache/turbine/services/rundata/DefaultTurbineRunDataTest.java b/src/test/org/apache/turbine/services/rundata/DefaultTurbineRunDataTest.java
index deded81a..089c84a3 100644
--- a/src/test/org/apache/turbine/services/rundata/DefaultTurbineRunDataTest.java
+++ b/src/test/org/apache/turbine/services/rundata/DefaultTurbineRunDataTest.java
@@ -44,7 +44,7 @@ public class DefaultTurbineRunDataTest extends BaseTestCase
 		Turbine.getConfiguration().setProperty(
 			  TurbineConstants.LOCALE_DEFAULT_COUNTRY_KEY,
 			  "UK");
-        assertEquals("ISO-8859-1", LocaleUtils.getDefaultCharSet());
+        assertEquals("ISO-8859-1", LocaleUtils.getDefaultCharset().name());
     }
 
     @BeforeClass
diff --git a/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java b/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
index 3e5c92d8..4e03ac0a 100644
--- a/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
+++ b/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
@@ -19,20 +19,17 @@ package org.apache.turbine.services.schedule;
  * under the License.
  */
 
-
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 
 import org.apache.turbine.modules.scheduledjobs.SimpleJob;
 import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.test.BaseTestCase;
 import org.apache.turbine.util.TurbineConfig;
 import org.apache.turbine.util.TurbineException;
-import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -128,7 +125,7 @@ public class QuartzSchedulerServiceTest extends BaseTestCase
         {
             JobKey jk = new JobKey("SimpleJob", JobEntryQuartz.DEFAULT_JOB_GROUP_NAME);
 			JobEntry je = scheduler.getJob(jk.hashCode());
-			assertThat(je, CoreMatchers.instanceOf(JobEntryQuartz.class));
+			assertInstanceOf(JobEntryQuartz.class, je);
 			JobEntryQuartz jeq = (JobEntryQuartz)je;
             assertEquals(jeq.getJobTrigger().getJobKey(), jk);
             assertEquals(jeq.getTask(), "SimpleJob");
diff --git a/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java b/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
index 34d394ab..31c7ca57 100644
--- a/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
+++ b/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
@@ -23,15 +23,14 @@ package org.apache.turbine.services.schedule;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 
 import org.apache.turbine.modules.scheduledjobs.SimpleJob;
 import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.util.TurbineConfig;
 import org.apache.turbine.util.TurbineException;
-import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -127,7 +126,7 @@ public class TurbineNonPersistentSchedulerServiceTest
         try
         {
 			JobEntry je = scheduler.getJob(1);
-			assertThat(je, CoreMatchers.instanceOf(JobEntryNonPersistent.class));
+			assertInstanceOf(JobEntryNonPersistent.class, je);
 			JobEntryNonPersistent jenp = (JobEntryNonPersistent)je;
             assertEquals(1, jenp.getJobId());
             assertEquals(1, jenp.getSecond());