Logs aren't generated after running Javelin flow
search cancel

Logs aren't generated after running Javelin flow

book

Article ID: 401359

calendar_today

Updated On: 06-17-2025

Products

CA Test Data Manager (Data Finder / Grid Tools)

Issue/Introduction

As part of our quarterly refresh, we have executed one of our javelin flows. The flow completes within secs, but no log files are created in path. We recently upgraded GT DataMaker and Javelin with latest version, does this have any changes related to logs? Can someone please help us to troubleshot why logs are no longer getting created?

Environment

TDMWeb-4.11-2013.0

Javelin-4.11.0.79

Cause

Inspecting the provided Javelin flow, we don't see any Log Activity configured in the flow. Therefore, the logging is not preformed by Javelin, but rather by the custom jar, which is called by the batch file, executed from the Javelin flow.

Executing the batch file, from a command line, allowed us to verify if the custom jar file was getting executed, and what errors, if any, are thrown by Java or the system. When running the batch file on the TDM 4.11 Portal host, we noticed the following error thrown by Java 17.

"jarFileExecute.bat
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.sql"

When running the same batch file from a TDM Portal 4.10 host, which runs Java 8, the custom jar file is executed.

A Google search on the Java error provided more information. This error means the Java "code (or dependency) is trying to define a class in the java.sql package, which is illegal. Starting from Java 9you can no longer define classes in any of the java.* packages, because the Java Platform Module System (JPMS) enforces stronger encapsulation of core Java packages".

A Broadcom Solutions Engineer also noted, "the issue is because they used an Eclipse JAR-in-JAR Loader, a legacy utility (JarRsrcLoader) used to package fat JARs with embedded JARs. This tool dynamically defines classes from embedded JARs using a custom ClassLoader, and some versions of it try to define classes in the java.* namespace — which is strictly prohibited starting from Java 9. This explains why the custom jar works in Java 8 but fails in Java 11 with SecurityException: Prohibited package name: java.sql."

Resolution

Resolution options are:

  • Recompile the jar, and use something other than Eclipse JAR in JAR loader to generate the fat jar. This would be the preferred long-term fix.

  • Short-term workaround: Add the PATH variable to your batch file, and point this to the jre8/bin directory inside the TDM Portal installation. When the batch file executes, it will run the jar using Java 8, which still allows for classes defined in java * packages.

    For example:

@echo off
SET PATH="C:\Program Files\CA\CA Test Data Manager Portal\jre8\bin"
java -jar "C:\\TDM\\Scripts\\ExecutableJarFiles\\CustomExe.jar" S