Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to send file to AS2 server from AS2-LIB but works fine from Mendelson server #40

Closed
svnswyahoo opened this issue May 17, 2018 · 4 comments
Assignees

Comments

@svnswyahoo
Copy link

svnswyahoo commented May 17, 2018

I created an AS2 client based on the file https://github.com/phax/as2-lib/blob/master/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToMendelsonTest.java and is working for a Mendelson server that I setup on another computer. I am able to successfully send files to that local AS2 server and receive the MDNs successfully through this code.

However, using the same code to send a message to a external AS2 server on the internet, I am unable to do so. I get an exception

[main] INFO com.helger.as2lib.processor.sender.AS2SenderModule - MIC IS NOT MATCHED, original mic: 'IpjGylckS2ovHgk995aA3SU2Jlw=, sha1' return mic: 'null' [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]

Also, I tried sending that file to the same external AS2 server from Mendelson AS2 and that worked like a charm. Now, I am wondering what I am doing wrong in my code that I get the exception above.

Source Code :

package com.cts.as2client;

/**
 * The following code was written based on the original source found in the link below:
 * Original Author: Philip Helger
 * https://github.com/phax/as2-lib/blob/master/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToMendelsonTest.java
 */

/**
 * The FreeBSD Copyright
 * Copyright 1994-2008 The FreeBSD Project. All rights reserved.
 * Copyright (C) 2013-2018 Philip Helger philip[at]helger[dot]com
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *    1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 *    2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * The views and conclusions contained in the software and documentation
 * are those of the authors and should not be interpreted as representing
 * official policies, either expressed or implied, of the FreeBSD Project.
 */

import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate;
import java.util.HashMap;

import org.glassfish.jersey.internal.util.Base64;

import com.helger.as2lib.client.AS2Client;
import com.helger.as2lib.client.AS2ClientRequest;
import com.helger.as2lib.client.AS2ClientResponse;
import com.helger.as2lib.client.AS2ClientSettings;
import com.helger.as2lib.crypto.ECompressionType;
import com.helger.as2lib.crypto.ECryptoAlgorithmCrypt;
import com.helger.as2lib.crypto.ECryptoAlgorithmSign;
import com.helger.as2lib.disposition.DispositionOptions;
import com.helger.as2lib.util.cert.AS2KeyStoreHelper;
import com.helger.commons.mime.CMimeType;
import com.helger.security.keystore.EKeyStoreType;

/**
 * Class to send an AS2 messages to AS2 server.
 */
public final class JavaAS2Client
{
  static
  {
    if (true)
      System.setProperty ("org.slf4j.simpleLogger.defaultLogLevel", "TRACE");
  }

  public static void main(String [] args) throws Exception
  {
	  String aResponse = null;
//	  aResponse = sendFileToAS2Server
//	  (
//	    "C:/mendelson/nginx/nginx-1.13.10/conf/javaAS2ClientTestStore.pfx"
//	  , "test"
//	  , "javaAS2"
//	  , "test@javaAS2.com"
//	  , "javaas2clienttest.org"
//	  , "AS2 test message from JavaAS2Client"
//	  , "YW1vZWJhIHBhcmFtb2VjaXVtIGV1Z2xpbmEgaHlkcmEgYmFjdGVyaWE="
//	  //, new File("C:/mendelson/nginx/nginx-1.13.10/conf/ACK3_SUCCESS_Single_Report.xml")
//	  , "DIGEST_SHA1"
//	  , "foodsafetyAS2"
//	  , "foodsafety-vm.cloudapp.net"
//	  , "https://foodsafety-vm.cloudapp.net:7090/as2/HttpReceiver"
//	  , "C:/mendelson/nginx/nginx-1.13.10/conf/foodsafety_sha1_1024.cer"
//	  );
	  
	  aResponse = sendFileToAS2Server
	  (
		"C:/mendelson/javaAS2client/Certificates/FDA/CognizantMedvantageFDA.Private.Key.pfx"
	  , "ctstest"
	  , "788157159_CTS_AS2"
	  , "Vardhamanithi.Sivasailam@cognizant.com"
	  , "Cognizant.MedvantageFDA.net"
	  , "AS2 test message from JavaAS2Client"
	  , "YW1vZWJhIHBhcmFtb2VjaXVtIGV1Z2xpbmEgaHlkcmEgYmFjdGVyaWE="
	  //, new File("C:/mendelson/nginx/nginx-1.13.10/conf/ACK3_SUCCESS_Single_Report.xml")
	  , "DIGEST_SHA1"
	  , "ZZFDATST"
	  , "FDA ESG Administrators"
	  , "https://esgtest.fda.gov:4080/exchange/ZZFDAAS2TST"
	  , "C:/mendelson/javaAS2client/Certificates/FDA/ESGsign_encryptioncert.cer"
	  );
	  
	  if (aResponse != null)
	  {
        System.out.println("Response received = " + aResponse);
        String search = null;
        int start = -1, end = -1;
        
        search = "responseAsStringBase64";
        start = aResponse.indexOf(search) + search.length() + 5;
        end = aResponse.indexOf("\"", start);
        System.out.println("Response decoded = " + Base64.decodeAsString(aResponse.substring(start, end)));

        search = "mdnTextBase64";
        start = aResponse.indexOf(search) + search.length() + 5;
        end = aResponse.indexOf("\"", start);
        System.out.println("MDN Text decoded = " + Base64.decodeAsString(aResponse.substring(start, end)));
	  }
	  else
		  System.out.println("null response");
  }

  public static String sendFileToAS2Server 
  (
    String clientKeyStoreFilePath
  , String clientKeyStoreRawPassword
  , String clientAS2PartnerName
  , String clientAS2ServerEmailAddress
  , String clientAS2PrivateKeyAlias
  , String clientAS2RequestDescription
  , String clientAS2RequestDataAsBase64
  , String clientAS2SignatureAlgorithm
  , String serverAS2PartnerName
  , String serverAS2PublicKeyAlias
  , String serverAS2URL
  , String serverAS2PublicKeyFilePath
  ) throws Exception
  {
	AS2ClientSettings aSettings = initAS2ClientSettings
	(
	  clientKeyStoreFilePath
	, clientKeyStoreRawPassword
	, clientAS2PartnerName
	, clientAS2ServerEmailAddress
	, clientAS2PrivateKeyAlias
	, clientAS2SignatureAlgorithm
	, serverAS2PartnerName
	, serverAS2PublicKeyAlias
	, serverAS2URL
	, serverAS2PublicKeyFilePath
	);
	
    // Build client request
    final AS2ClientRequest aRequest = new AS2ClientRequest (clientAS2RequestDescription);
    aRequest.setData (Base64.decodeAsString(clientAS2RequestDataAsBase64), StandardCharsets.ISO_8859_1);

//    //SVN-ADDEDFORFDATEST
//    aRequest.setFilename("test.xml");
    
    aRequest.setContentType (CMimeType.TEXT_PLAIN.getAsString());

    HashMap <String, String> hmAS2Response = sendAS2Request(aSettings, aRequest);
    
    return hashMapToJsonString(hmAS2Response);
  }
  
  public static String sendFileToAS2Server 
  (
    String clientKeyStoreFilePath
  , String clientKeyStoreRawPassword
  , String clientAS2PartnerName
  , String clientAS2ServerEmailAddress
  , String clientAS2PrivateKeyAlias
  , String clientAS2RequestDescription
  , File clientAS2RequestDataFilePath
  , String clientAS2SignatureAlgorithm
  , String serverAS2PartnerName
  , String serverAS2PublicKeyAlias
  , String serverAS2URL
  , String serverAS2PublicKeyFilePath
  ) throws Exception
  {
	AS2ClientSettings aSettings = initAS2ClientSettings
	(
	  clientKeyStoreFilePath
	, clientKeyStoreRawPassword
	, clientAS2PartnerName
	, clientAS2ServerEmailAddress
	, clientAS2PrivateKeyAlias
	, clientAS2SignatureAlgorithm
	, serverAS2PartnerName
	, serverAS2PublicKeyAlias
	, serverAS2URL
	, serverAS2PublicKeyFilePath
	);
	
    // Build client request
    final AS2ClientRequest aRequest = new AS2ClientRequest (clientAS2RequestDescription);
    aRequest.setData (clientAS2RequestDataFilePath, StandardCharsets.ISO_8859_1);
    
//    //SVN-ADDEDFORFDATEST
//    aRequest.setFilename(clientAS2RequestDataFilePath.getName());
    
    aRequest.setContentType (CMimeType.TEXT_PLAIN.getAsString());

    HashMap <String, String> hmAS2Response = sendAS2Request(aSettings, aRequest);
    
    return hashMapToJsonString(hmAS2Response);
  }
  
  public static AS2ClientSettings initAS2ClientSettings
  (
	  String clientKeyStoreFilePath
	, String clientKeyStoreRawPassword
	, String clientAS2PartnerName
	, String clientAS2ServerEmailAddress
	, String clientAS2PrivateKeyAlias
	, String clientAS2SignatureAlgorithm
	, String serverAS2PartnerName
	, String serverAS2PublicKeyAlias
	, String serverAS2URL
	, String serverAS2PublicKeyFilePath
  ) throws Exception
  {
    // Start client configuration
    final AS2ClientSettings aSettings = new AS2ClientSettings ();
    // This PFX file should contain the client AS2's private key pair and the server AS2's public key
    aSettings.setKeyStore (EKeyStoreType.PKCS12, new File (clientKeyStoreFilePath), clientKeyStoreRawPassword);
    
    //SVN-ADDEDFORFDATEST
    aSettings.customHeaders().addHeader("X-Cyclone-Metadata-FdaSubmissionType", "GWTEST");
    aSettings.customHeaders().addHeader("X-Cyclone-Metadata-FdaCenter", "ConnectTest");
    
    // sender - This java program, which is an AS2 client
    aSettings.setSenderData (clientAS2PartnerName, clientAS2ServerEmailAddress, clientAS2PrivateKeyAlias);

    // receiver - The AS2 server that receives the file sent
    aSettings.setReceiverData 
    (
      serverAS2PartnerName    // AS2 id of the AS2 Server
    , serverAS2PublicKeyAlias // Key alias of the server's public key, 
                              // imported into the client's keystore 
                              // (here javaAS2ClientTestStore.pfx)
    , serverAS2URL            // URL of the AS2 server
    ); 
    
    // public key exported from the AS2 server 
    // and sent to the client computer, for encryption
    final X509Certificate aReceiverCertificate = AS2KeyStoreHelper.readX509Certificate (serverAS2PublicKeyFilePath); 
    aSettings.setReceiverCertificate (aReceiverCertificate);

    // AS2 stuff
    aSettings.setPartnershipName (aSettings.getSenderAS2ID () + "_" + aSettings.getReceiverAS2ID ());
    
    // When a signed message is used, the algorithm for MIC and message must be identical
    final ECryptoAlgorithmSign eSignAlgo = ECryptoAlgorithmSign.valueOf(clientAS2SignatureAlgorithm);
    //final ECryptoAlgorithmSign eSignAlgo = ECryptoAlgorithmSign.DIGEST_SHA256;
    
    aSettings.setMDNOptions 
    (
		new DispositionOptions ()
			.setMICAlg (eSignAlgo)
		    .setMICAlgImportance (DispositionOptions.IMPORTANCE_REQUIRED)
		    .setProtocol (DispositionOptions.SIGNED_RECEIPT_MICALG)
		    .setProtocolImportance (DispositionOptions.IMPORTANCE_REQUIRED)
    );
    aSettings.setEncryptAndSign (ECryptoAlgorithmCrypt.CRYPT_3DES, eSignAlgo);
    aSettings.setCompress (ECompressionType.ZLIB, false);
    aSettings.setMessageIDFormat ("JavaAS2Client_phaxAS2Lib-$date.ddMMuuuuHHmmssZ$-$rand.1234$@$msg.sender.as2_id$_$msg.receiver.as2_id$");
    aSettings.setRetryCount (1);
    aSettings.setConnectTimeoutMS (600_000);
    aSettings.setReadTimeoutMS (600_000);

    return aSettings;
  }
  
  public static HashMap <String, String> sendAS2Request(AS2ClientSettings aSettings, AS2ClientRequest aRequest)
  {
    // Send message
    final AS2ClientResponse aResponse = new AS2Client ()
    		.setHttpProxy (null)
    		.sendSynchronous (aSettings, aRequest);
    
    // Process Response
    HashMap <String, String> hmAS2Response = new HashMap<String, String>();
    if (aResponse.hasException())
    {
    	StringWriter stackTrace = new StringWriter();
    	aResponse.getException().printStackTrace(new PrintWriter(stackTrace));
    	hmAS2Response.put("exceptionAsStringBase64", Base64.encodeAsString(stackTrace.toString()));
    }
    else
    {
	    hmAS2Response.put("originalMessageID", (String) nvl(aResponse.getOriginalMessageID(), "NULL_RECD"));
	    hmAS2Response.put("mdnMessageID", (String) nvl(aResponse.getMDNMessageID(), "NULL_RECD"));
	    hmAS2Response.put("mdnDisposition", (String) nvl(aResponse.getMDNDisposition(), "NULL_RECD"));
	    hmAS2Response.put("mdnTextBase64", Base64.encodeAsString((String) nvl(aResponse.getMDNText(), "NULL_RECD")));
	    hmAS2Response.put("responseAsStringBase64", Base64.encodeAsString((String) nvl(aResponse.getAsString(), "NULL_RECD")));
    }
	
    return hmAS2Response;
  }
  
  public static Object nvl(Object objCheck, Object objReturn)
  {
	  if (objCheck == null)
		  return objReturn;
	  return objCheck;
  }
  
  public static String hashMapToJsonString(HashMap<String, String> map)
  {
	  String jsonString = null;
	  
	  for (String key : map.keySet())
	  {
		 String keyValue = '"' + key + '"' + " : " + '"' + map.get(key) + '"';
		 jsonString = (jsonString == null) ? keyValue : jsonString + ", " + keyValue; 
	  }
	  
	  return "{ " + jsonString + " }";
  }
}

Log Messages


[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.temporal.Temporal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.temporal.TemporalAccessor'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'class java.time.ZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.time.chrono.ChronoZonedDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.time.temporal.Temporal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.time.temporal.TemporalAccessor'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.temporal.TemporalAdjuster'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'class java.time.OffsetDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.time.temporal.TemporalAdjuster'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.OffsetDateTime' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.OffsetDateTime' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'class java.time.LocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Timestamp' to 'interface java.time.chrono.ChronoLocalDateTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.OffsetDateTime' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.OffsetDateTime' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.time.temporal.TemporalAdjuster'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.time.temporal.Temporal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Date' to 'interface java.time.temporal.TemporalAccessor'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.time.LocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'interface java.time.chrono.ChronoLocalDate'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.GregorianCalendar' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.ZonedDateTime' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.OffsetDateTime' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.util.Date' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'class java.time.LocalTime'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'interface java.time.temporal.TemporalAdjuster'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'interface java.time.temporal.Temporal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.sql.Time' to 'interface java.time.temporal.TemporalAccessor'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDateTime' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalDate' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.LocalTime' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.YearMonth' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Year' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.util.GregorianCalendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'class java.util.Calendar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.time.Instant' to 'interface java.lang.Cloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.MonthDay'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.YearMonth'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.Year'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.Duration'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface java.time.temporal.TemporalAmount'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.time.Period'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface java.time.chrono.ChronoPeriod'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class java.time.Month'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class java.lang.Enum'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface java.time.temporal.TemporalAdjuster'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface java.time.temporal.TemporalAccessor'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class java.time.DayOfWeek'
[main] DEBUG com.helger.commons.typeconvert.TypeConverterRegistry - Calling registerTypeConverter on com.helger.commons.typeconvert.IOTypeConverterRegistrar
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'class java.lang.String'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'interface java.lang.CharSequence'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'class java.net.URI'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.io.File' to 'class java.net.URL'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'class java.io.File'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'class java.net.URL'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class java.lang.String'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface java.lang.CharSequence'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class java.io.File'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class java.net.URI'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.io.File'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.net.URI'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.net.URL'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAssignableSourceFixedDestination with type ASSIGNABLE_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class com.helger.commons.io.resource.ClassPathResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.lang.IHasClassLoader'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.resource.IReadableResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.resource.IResourceBase'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.IHasInputStreamAndReader'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.IHasInputStream'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class com.helger.commons.io.resource.ClassPathResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.lang.IHasClassLoader'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.resource.IReadableResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.resource.IResourceBase'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.IHasInputStreamAndReader'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.IHasInputStream'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class com.helger.commons.io.resource.FileSystemResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.resource.IReadWriteResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.resource.IWritableResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.IHasOutputStreamAndWriter'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'interface com.helger.commons.io.IHasOutputStream'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class com.helger.commons.io.resource.FileSystemResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.resource.IReadWriteResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.resource.IWritableResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.IHasOutputStreamAndWriter'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'interface com.helger.commons.io.IHasOutputStream'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class com.helger.commons.io.resource.URLResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URL' to 'class com.helger.commons.io.resource.URLResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'class com.helger.commons.io.resource.URLResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface com.helger.commons.io.resource.IReadableResource'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface com.helger.commons.io.resource.IResourceBase'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface com.helger.commons.io.IHasInputStreamAndReader'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.net.URI' to 'interface com.helger.commons.io.IHasInputStream'
[main] DEBUG com.helger.commons.typeconvert.TypeConverterRegistry - Calling registerTypeConverter on com.helger.commons.typeconvert.LocaleTypeConverterRegistrar
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.String' to 'class java.util.Locale'
[main] DEBUG com.helger.commons.typeconvert.TypeConverterRegistry - Calling registerTypeConverter on com.helger.commons.typeconvert.MutableTypeConverterRegistrar
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigDecimal' to 'class java.math.BigDecimal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigDecimal' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigDecimal' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigDecimal' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigDecimal' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'class com.helger.commons.mutable.MutableBigDecimal'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigDecimal' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigInteger' to 'class java.math.BigInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigInteger' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigInteger' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigInteger' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBigInteger' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'class com.helger.commons.mutable.MutableBigInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.math.BigInteger' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBoolean' to 'class java.lang.Boolean'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBoolean' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBoolean' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableBoolean' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Boolean' to 'class com.helger.commons.mutable.MutableBoolean'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Boolean' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Boolean' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Boolean' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Boolean' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableByte' to 'class java.lang.Byte'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableByte' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableByte' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableByte' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableByte' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'class com.helger.commons.mutable.MutableByte'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'class com.helger.commons.mutable.AbstractMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Byte' to 'interface com.helger.commons.mutable.IMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableChar' to 'class java.lang.Character'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableChar' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableChar' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableChar' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'class com.helger.commons.mutable.MutableChar'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'class com.helger.commons.mutable.AbstractMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Character' to 'interface com.helger.commons.mutable.IMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableDouble' to 'class java.lang.Double'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableDouble' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableDouble' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableDouble' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableDouble' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'class com.helger.commons.mutable.MutableDouble'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Double' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableFloat' to 'class java.lang.Float'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableFloat' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableFloat' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableFloat' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableFloat' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'class com.helger.commons.mutable.MutableFloat'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Float' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableInt' to 'class java.lang.Integer'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableInt' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableInt' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableInt' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableInt' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class com.helger.commons.mutable.MutableInt'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class com.helger.commons.mutable.AbstractMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Integer' to 'interface com.helger.commons.mutable.IMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableLong' to 'class java.lang.Long'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableLong' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableLong' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableLong' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableLong' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'class com.helger.commons.mutable.MutableLong'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'class com.helger.commons.mutable.AbstractMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Long' to 'interface com.helger.commons.mutable.IMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableShort' to 'class java.lang.Short'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableShort' to 'class java.lang.Number'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableShort' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableShort' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.mutable.MutableShort' to 'interface java.lang.Comparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'class com.helger.commons.mutable.MutableShort'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'class com.helger.commons.mutable.AbstractMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'class com.helger.commons.mutable.AbstractMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.mutable.IMutableNumeric'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.mutable.INumber'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.mutable.IMutableObject'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.traits.IGenericImplTrait'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.lang.ICloneable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.compare.IComparable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class java.lang.Short' to 'interface com.helger.commons.mutable.IMutableInteger'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleFixedSourceAnyDestination with type FIXED_SRC_ANY_DST
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter rule TypeConverterRuleAnySourceFixedDestination with type ANY_SRC_FIXED_DST
[main] DEBUG com.helger.commons.typeconvert.TypeConverterRegistry - Calling registerTypeConverter on com.helger.mail.config.TypeConverterRegistrar_ph_mail
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class javax.mail.internet.InternetAddress' to 'class com.helger.commons.email.EmailAddress'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class javax.mail.internet.InternetAddress' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class javax.mail.internet.InternetAddress' to 'interface com.helger.commons.email.IEmailAddress'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class javax.mail.internet.InternetAddress' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class javax.mail.internet.InternetAddress' to 'interface com.helger.commons.name.IHasDisplayName'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.email.EmailAddress' to 'class javax.mail.internet.InternetAddress'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.email.EmailAddress' to 'class javax.mail.Address'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.email.EmailAddress' to 'class java.lang.Object'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.email.EmailAddress' to 'interface java.io.Serializable'
[main] TRACE com.helger.commons.typeconvert.TypeConverterRegistry - Registered type converter from 'class com.helger.commons.email.EmailAddress' to 'interface java.lang.Cloneable'
[main] DEBUG com.helger.commons.typeconvert.TypeConverterRegistry - 772 type converters and 90 rules registered
[main] INFO com.helger.as2lib.processor.sender.AS2SenderModule - Connecting to https://esgtest.fda.gov:4080/exchange/ZZFDAAS2TST [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] INFO com.helger.commons.ws.TrustManagerTrustAll - checkServerTrusted ([[
[
  Version: V3
  Subject: CN=esgtest.fda.gov, O=US Dept of Health and Human Services, L=Rockville, ST=Maryland, C=US
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 26409645288072701685708252283552198223498845611725200609755740624137536448254583927263516302206825663359835877366947508397562478771854330112768468404204218646721940101008831157216559587018218996277705710684825971653832578751114215113605869986712576535332758046714100060480896544508932543054628863001228951853095653365058690860811265776630400588805096499610772203015157957988730690067495538956821204723914150011103723587187690627740048054158215126598468835180795138671881933572486518495389384190921489473869426023299262768290119823952935390155295718121764919749671918403970618298307670826490325329912099059045633915901
  public exponent: 65537
  Validity: [From: Mon Oct 30 13:51:21 UTC 2017,
               To: Sat Nov 23 14:21:20 UTC 2019]
  Issuer: CN=Entrust Certification Authority - L1K, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
  SerialNumber: [    8a9f7bc8 d36bf291 00000000 50debe6d]

Certificate Extensions: 9
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp.entrust.net
, 
   accessMethod: caIssuers
   accessLocation: URIName: http://aia.entrust.net/l1k-chain256.cer
]
]

[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 82 A2 70 74 DD BC 53 3F   CF 7B D4 F7 CD 7F A7 60  ..pt..S?.......`
0010: C6 0A 4C BF                                        ..L.
]
]

[3]: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

[4]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.entrust.net/level1k.crl]
]]

[5]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.16.840.1.114028.10.1.5]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1A 68 74 74 70 3A 2F   2F 77 77 77 2E 65 6E 74  ..http://www.ent
0010: 72 75 73 74 2E 6E 65 74   2F 72 70 61              rust.net/rpa

]]  ]
  [CertificatePolicyId: [2.23.140.1.2.2]
[]  ]
]

[6]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  serverAuth
  clientAuth
]

[7]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_Encipherment
]

[8]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  DNSName: esgtest.fda.gov
]

[9]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9C 7A 6F E8 22 A3 4C 69   4B 04 4B 1C A2 F5 2B 16  .zo.".LiK.K...+.
0010: 57 23 5D 19                                        W#].
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: C7 73 AC 4F 03 11 31 6D   38 F2 58 D9 03 E1 63 5A  .s.O..1m8.X...cZ
0010: 58 87 BD F7 7E AF E7 9E   03 D0 47 53 63 07 F6 EE  X.........GSc...
0020: 68 D0 29 50 8E FB 61 C9   63 C9 23 CB 1B A8 CF A3  h.)P..a.c.#.....
0030: 7B F5 7A 83 8B B0 EC 37   8C 08 47 81 74 65 5A F6  ..z....7..G.teZ.
0040: 37 31 11 A0 BE D6 B1 83   36 57 A0 3F F8 75 50 A6  71......6W.?.uP.
0050: 02 C1 61 63 92 E5 A7 23   D6 C9 B5 6C 3A D1 C0 27  ..ac...#...l:..'
0060: CC B0 F3 12 E3 34 82 B1   48 49 BD D6 91 81 9E 53  .....4..HI.....S
0070: 5C F8 02 83 7D 93 1D D6   26 4C BD 31 36 EB 38 16  \.......&L.16.8.
0080: 49 24 68 8D 2E F1 7F 60   AC 4C D4 75 C4 C1 55 9D  I$h....`.L.u..U.
0090: A5 68 AD 91 96 9D 08 01   CC 22 49 63 82 63 80 4C  .h......."Ic.c.L
00A0: CD DB 2A A0 98 F3 6D EF   45 76 64 BC 1B B3 94 A2  ..*...m.Evd.....
00B0: F8 7F 03 A6 FF C1 A7 4D   6D 33 41 EC D6 85 BE 30  .......Mm3A....0
00C0: 5C 75 2F A4 67 27 0A C0   B4 28 65 BB 8B 7C F6 B4  \u/.g'...(e.....
00D0: D5 A9 AD 21 63 FD 5D B5   33 23 48 BD 8B EE B1 79  ...!c.].3#H....y
00E0: 11 E7 A6 6F 96 F1 81 EE   3D A4 60 B5 3E 17 52 24  ...o....=.`.>.R$
00F0: 45 B1 2E 79 5D 91 BE BC   5A 3A E9 9E 8B 66 E2 58  E..y]...Z:...f.X

], [
[
  Version: V3
  Subject: CN=Entrust Certification Authority - L1K, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 27551307444371019689131110149769219990039807338613156351862185174382854411507882869594323045972646206522091223412845084662697963738056329694954757733127615230544144867691820621020457350209413744664435391268026938568271273767754233391180191225380975610419044223872547759974221165383368362204707920992085265752716511977418428433352003666603687066036036809314076495340047097056540549930002295830214871821901801683045861508207035810803683518154876258099914890430271432879895190838085378353306026330728201860966695131162987330349622401592098379219672966523107482097898903654925215411696318757332545538679817537243386206491
  public exponent: 65537
  Validity: [From: Mon Oct 05 19:13:56 UTC 2015,
               To: Thu Dec 05 19:43:56 UTC 2030]
  Issuer: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
  SerialNumber: [    0ee94cc3 00000000 51d37785]

Certificate Extensions: 7
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp.entrust.net
]
]

[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 6A 72 26 7A D0 1E EF 7D   E7 3B 69 51 D4 6C 8D 9F  jr&z.....;iQ.l..
0010: 90 12 66 AB                                        ..f.
]
]

[3]: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:0
]

[4]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.entrust.net/g2ca.crl]
]]

[5]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.5.29.32.0]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1A 68 74 74 70 3A 2F   2F 77 77 77 2E 65 6E 74  ..http://www.ent
0010: 72 75 73 74 2E 6E 65 74   2F 72 70 61              rust.net/rpa

]]  ]
]

[6]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

[7]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 82 A2 70 74 DD BC 53 3F   CF 7B D4 F7 CD 7F A7 60  ..pt..S?.......`
0010: C6 0A 4C BF                                        ..L.
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 39 D5 8E 98 83 61 C8 2C   63 D3 70 1D 19 30 CB F6  9....a.,c.p..0..
0010: 09 AC CC 69 D5 C9 DC 37   41 F2 32 0F EF 74 C3 58  ...i...7A.2..t.X
0020: F6 78 27 09 34 08 95 92   2F D7 DF B8 A3 FD 0E 81  .x'.4.../.......
0030: E9 A4 9C D3 3F 4D 68 2B   15 31 0A 15 CC 52 04 93  ....?Mh+.1...R..
0040: E8 93 50 C3 D9 B1 E2 E1   68 B7 3A 09 74 F1 34 58  ..P.....h.:.t.4X
0050: 0A 3F 77 98 40 B8 E6 68   FF 5D E4 C8 46 C5 EC 81  .?w.@..h.]..F...
0060: D7 C9 82 18 5C 83 CE 71   D8 BC BF AC 99 02 93 DB  ....\..q........
0070: 94 98 84 D2 9C A6 B5 FE   5C BB F0 4A AF 21 AC C2  ........\..J.!..
0080: 3F 49 24 67 D6 2E 8E CF   AC CC 64 15 18 72 E5 6C  ?I$g......d..r.l
0090: 77 D3 52 A8 B9 DD 8D AC   00 4A 35 19 D4 6F 73 A3  w.R......J5..os.
00A0: 75 EF 6B 64 C3 E0 8D 83   12 A1 8A E7 0E 86 4D D8  u.kd..........M.
00B0: B4 20 1B BE 6A A5 8C 4B   68 66 E3 2B C7 58 0B FB  . ..j..Khf.+.X..
00C0: 56 10 D4 91 FB 1D D3 31   58 10 8C 44 E3 75 7B 10  V......1X..D.u..
00D0: 9D B5 38 B1 F6 AA CA 81   64 6C E8 F2 E2 81 55 97  ..8.....dl....U.
00E0: 51 7F E1 C2 27 50 A2 C9   3C 5B 00 43 F6 5B B9 D5  Q...'P..<[.C.[..
00F0: A5 FC FF 07 50 40 67 07   B0 55 F0 B7 7E 6E 2D CC  ....P@g..U...n-.

], [
[
  Version: V3
  Subject: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 23545767790267846087020216328652375341530866026192217463317405594910218314123159568888460497267501687940934346981754258614432514248455478810313157154214138578842767759163979536305859476265307686116748146371797434166143379656079822969790429567552761570863643046057291809190478531977203100009678850846269337262832775419535844414491425351658902840388933458673579532971478290411639120918504262738267963831253623767536425274517686015410328746042499987144667039641594899862629160973434220831909420079304090908018145960484024335529733348176737696982633769639849884581132755009947068081018826110609706967697922262932941743217
  public exponent: 65537
  Validity: [From: Mon Sep 22 17:14:57 UTC 2014,
               To: Mon Sep 23 01:31:53 UTC 2024]
  Issuer: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
  SerialNumber: [    51d34044]

Certificate Extensions: 7
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp.entrust.net
]
]

[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 68 90 E4 67 A4 A6 53 80   C7 86 66 A4 F1 F7 4B 43  h..g..S...f...KC
0010: FB 84 BD 6D                                        ...m
]
]

[3]: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:1
]

[4]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.entrust.net/rootca1.crl]
]]

[5]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.5.29.32.0]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1A 68 74 74 70 3A 2F   2F 77 77 77 2E 65 6E 74  ..http://www.ent
0010: 72 75 73 74 2E 6E 65 74   2F 43 50 53              rust.net/CPS

]]  ]
]

[6]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

[7]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 6A 72 26 7A D0 1E EF 7D   E7 3B 69 51 D4 6C 8D 9F  jr&z.....;iQ.l..
0010: 90 12 66 AB                                        ..f.
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 69 33 83 FC 28 7A 6F 7D   EF 9D 55 EB C5 3E 7A 9D  i3..(zo...U..>z.
0010: 75 B3 CC C3 38 36 D9 34   A2 28 68 18 EA 1E 69 D3  u...86.4.(h...i.
0020: BD E7 D0 77 DA B8 00 83   4E 4A CF 6F D1 F1 C1 22  ...w....NJ.o..."
0030: 3F 74 E4 F7 98 49 9E 9B   B6 9E E1 DB 98 77 2D 56  ?t...I.......w-V
0040: 34 B1 A8 3C D9 FD C0 CD   C7 BF 05 03 D4 02 C5 F1  4..<............
0050: E5 C6 DA 08 A5 13 C7 62   23 11 D1 61 30 1D 60 84  .......b#..a0.`.
0060: 45 EF 79 A8 C6 26 93 A4   B7 CD 34 B8 69 C5 13 F6  E.y..&....4.i...
0070: 91 B3 C9 45 73 76 B6 92   F6 76 0A 5B E1 03 47 B7  ...Esv...v.[..G.
0080: E9 29 4C 91 32 23 37 4A   9C 35 D8 78 FD 1D 1F E4  .)L.2#7J.5.x....
0090: 83 89 24 80 AD B7 F9 CF   E4 5D A5 D4 71 C4 85 5B  ..$......]..q..[
00A0: 70 1F DB 3F 1C 01 EB 1A   45 26 31 14 CC 65 BF 67  p..?....E&1..e.g
00B0: DE CA CC 33 65 E5 41 91   D7 37 BE 41 1A 96 9D E6  ...3e.A..7.A....
00C0: 8A 97 9D A7 CE AC 4E 9A   3D BD 01 A0 6A D9 4F 22  ......N.=...j.O"
00D0: 00 8B 44 D5 69 62 7B 2E   EB CC BA E7 92 7D 69 67  ..D.ib........ig
00E0: 3D FC B8 7C DE 41 87 D0   69 EA BA 0A 18 7A 1A 95  =....A..i....z..
00F0: 43 B3 79 71 28 76 6D A1   FB 57 4A EC 4D C8 0E 10  C.yq(vm..WJ.M...

], [
[
  Version: V3
  Subject: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

  Key:  Sun RSA public key, 2048 bits
  modulus: 23049197224710113590772544035103433278481817674493882011447342834437521939051768037777212700992378980195921282446936121554158364416908288069326476596859155882566673978444887949728617315810731530565469331622778409966087591257255114642101890934133193460653279618791020470236538122347487563173039818616304559198218202536315405577676472315795560540193000101878682158853566414134229236728954663196113800150132822629817679485490182404418400673058073844967527388560195880858402422047483008658534964509529966280511092808510110509164093311927186336350002098847973301828089965319406146060814149283619496543832009520752545683659
  public exponent: 65537
  Validity: [From: Mon Nov 27 20:23:42 UTC 2006,
               To: Fri Nov 27 20:53:42 UTC 2026]
  Issuer: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
  SerialNumber: [    456b5054]

Certificate Extensions: 6
[1]: ObjectId: 1.2.840.113533.7.65.0 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 10 30 0E 1B 08 56 37   2E 31 3A 34 2E 30 03 02  ..0...V7.1:4.0..
0010: 04 90                                              ..


[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 68 90 E4 67 A4 A6 53 80   C7 86 66 A4 F1 F7 4B 43  h..g..S...f...KC
0010: FB 84 BD 6D                                        ...m
]
]

[3]: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

[4]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

[5]: ObjectId: 2.5.29.16 Criticality=false
PrivateKeyUsage: [
From: Mon Nov 27 20:23:42 UTC 2006, To: Fri Nov 27 20:53:42 UTC 2026]

[6]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 68 90 E4 67 A4 A6 53 80   C7 86 66 A4 F1 F7 4B 43  h..g..S...f...KC
0010: FB 84 BD 6D                                        ...m
]
]

]
  Algorithm: [SHA1withRSA]
  Signature:
0000: 93 D4 30 B0 D7 03 20 2A   D0 F9 63 E8 91 0C 05 20  ..0... *..c.... 
0010: A9 5F 19 CA 7B 72 4E D4   B1 DB D0 96 FB 54 5A 19  ._...rN......TZ.
0020: 2C 0C 08 F7 B2 BC 85 A8   9D 7F 6D 3B 52 B3 2A DB  ,.........m;R.*.
0030: E7 D4 84 8C 63 F6 0F CB   26 01 91 50 6C F4 5F 14  ....c...&..Pl._.
0040: E2 93 74 C0 13 9E 30 3A   50 E3 B4 60 C5 1C F0 22  ..t...0:P..`..."
0050: 44 8D 71 47 AC C8 1A C9   E9 9B 9A 00 60 13 FF 70  D.qG........`..p
0060: 7E 5F 11 4D 49 1B B3 15   52 7B C9 54 DA BF 9D 95  ._.MI...R..T....
0070: AF 6B 9A D8 9E E9 F1 E4   43 8D E2 11 44 3A BF AF  .k......C...D:..
0080: BD 83 42 73 52 8B AA BB   A7 29 CF F5 64 1C 0A 4D  ..BsR....)..d..M
0090: D1 BC AA AC 9F 2A D0 FF   7F 7F DA 7D EA B1 ED 30  .....*.........0
00A0: 25 C1 84 DA 34 D2 5B 78   83 56 EC 9C 36 C3 26 E2  %...4.[x.V..6.&.
00B0: 11 F6 67 49 1D 92 AB 8C   FB EB FF 7A EE 85 4A A7  ..gI.......z..J.
00C0: 50 80 F0 A7 5C 4A 94 2E   5F 05 99 3C 52 41 E0 CD  P...\J.._..<RA..
00D0: B4 63 CF 01 43 BA 9C 83   DC 8F 60 3B F3 5A B4 B4  .c..C.....`;.Z..
00E0: 7B AE DA 0B 90 38 75 EF   81 1D 66 D2 F7 57 70 36  .....8u...f..Wp6
00F0: B3 BF FC 28 AF 71 25 85   5B 13 FE 1E 7F 5A B4 3C  ...(.q%.[....Z.<

]], RSA)
[main] INFO com.helger.as2lib.processor.sender.AS2SenderModule - transferred 2257 bytes in 0.044 seconds at 50.95 KBps [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] DEBUG com.helger.as2lib.processor.sender.AS2SenderModule - Receiving synchronous MDN for message [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] DEBUG com.helger.commons.http.HttpHeaderMap - Adding HTTP header: 'Connection' = 'close'
[main] DEBUG com.helger.commons.http.HttpHeaderMap - Adding HTTP header: 'Set-Cookie' = 'BIGipServerPreProd-Extranet-ESG3-4080=390638346.55315.0000; path=/'
[main] DEBUG com.helger.commons.http.HttpHeaderMap - Adding HTTP header: 'Set-Cookie' = 'BIGipServerPreProd-Extranet-ESG3-5080=911321866.55315.0000; path=/'
[main] TRACE com.helger.as2lib.processor.sender.AS2SenderModule - Retrieved MDN stream data:

[main] INFO com.helger.as2lib.util.AS2Helper - Start parsing MDN of [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] DEBUG com.helger.as2lib.processor.DefaultMessageProcessor - DefaultMessageProcessor.handle (storemdn,[AS2Message@0x772861aa: data=javax.mail.internet.MimeBodyPart@6631cb64; MDN=[[AS2MessageMDN@0x19962194: attributes=[{}]; headers=[HttpHeaderMap@0x481e91b6: Headers={connection=[close], set-cookie=[BIGipServerPreProd-Extranet-ESG3-4080=390638346.55315.0000; path=/, BIGipServerPreProd-Extranet-ESG3-5080=911321866.55315.0000; path=/]}]; partnership=[Partnership@0x3ee69ad8: name=auto-created-dummy; senderIDs=[{as2_id=null, x509_alias=FDA ESG Administrators}]; receiverIDs=[{as2_id=null, x509_alias=Cognizant.MedvantageFDA.net}]; attributes=[{}]]]; message=<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>; data=javax.mail.internet.MimeBodyPart@7c8f9c2e; text=null]],null)
[main] DEBUG com.helger.as2lib.processor.AbstractMessageProcessor -   no modules found for 'storemdn'; modules are: [[[{}]], [[{connecttimeout=600000, readtimeout=600000}]]]
[main] INFO com.helger.as2lib.processor.sender.AS2SenderModule - received MDN [null] [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] INFO com.helger.as2lib.processor.sender.AS2SenderModule - MIC IS NOT MATCHED, original mic: 'IpjGylckS2ovHgk995aA3SU2Jlw=, sha1' return mic: 'null' [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]
[main] INFO com.helger.as2lib.exception.OpenAS2Exception - OpenAS2 OpenAS2Exception terminated: Message was sent but an error occured while receiving the MDN; sources: {message=[AS2Message@0x772861aa: data=javax.mail.internet.MimeBodyPart@6631cb64; MDN=[[AS2MessageMDN@0x19962194: attributes=[{}]; headers=[HttpHeaderMap@0x481e91b6: Headers={connection=[close], set-cookie=[BIGipServerPreProd-Extranet-ESG3-4080=390638346.55315.0000; path=/, BIGipServerPreProd-Extranet-ESG3-5080=911321866.55315.0000; path=/]}]; partnership=[Partnership@0x3ee69ad8: name=auto-created-dummy; senderIDs=[{as2_id=null, x509_alias=FDA ESG Administrators}]; receiverIDs=[{as2_id=null, x509_alias=Cognizant.MedvantageFDA.net}]; attributes=[{}]]]; message=<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>; data=javax.mail.internet.MimeBodyPart@7c8f9c2e; text=null]]}
com.helger.as2lib.exception.OpenAS2Exception: Invalid disposition type format: null
	at com.helger.as2lib.disposition.DispositionType.createFromString(DispositionType.java:151)
	at com.helger.as2lib.processor.sender.AS2SenderModule.receiveSyncMDN(AS2SenderModule.java:589)
	at com.helger.as2lib.processor.sender.AS2SenderModule._sendViaHTTP(AS2SenderModule.java:724)
	at com.helger.as2lib.processor.sender.AS2SenderModule.handle(AS2SenderModule.java:773)
	at com.helger.as2lib.client.AS2Client.sendSynchronous(AS2Client.java:382)
	at com.cts.as2client.JavaAS2Client.sendAS2Request(JavaAS2Client.java:290)
	at com.cts.as2client.JavaAS2Client.sendFileToAS2Server(JavaAS2Client.java:170)
	at com.cts.as2client.JavaAS2Client.main(JavaAS2Client.java:94)
[main] DEBUG com.helger.as2lib.client.AS2Client - Response retrieved: 
OriginalMessageID: <JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>

Response received = { "mdnDisposition" : "NULL_RECD", "responseAsStringBase64" : "Ck9yaWdpbmFsTWVzc2FnZUlEOiA8SmF2YUFTMkNsaWVudF9waGF4QVMyTGliLTE3MDUyMDE4MDkxMjM0KzAwMDAtNTYxN0A3ODgxNTcxNTlfQ1RTX0FTMl9aWkZEQVRTVD4KU2VuZGluZyBkdXJhdGlvbjogUFQxLjkyMjI1MjRTCg==", "originalMessageID" : "<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>", "mdnTextBase64" : "TlVMTF9SRUNE", "mdnMessageID" : "NULL_RECD" }
Response decoded = 
OriginalMessageID: <JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>
Sending duration: PT1.9222524S

MDN Text decoded = NULL_RECD

Request your assistance in finding the possible mistake in the code.

Thanks.

@phax
Copy link
Owner

phax commented May 17, 2018

The other server sent an invalid MDN, because no MIC is contained:

MIC IS NOT MATCHED, original mic: 'IpjGylckS2ovHgk995aA3SU2Jlw=, sha1' return mic: 'null' [<JavaAS2Client_phaxAS2Lib-17052018091234+0000-5617@788157159_CTS_AS2_ZZFDATST>]

do you have access to the other server logfiles?

@svnswyahoo
Copy link
Author

svnswyahoo commented May 17, 2018

Thanks for the quick response!

Unfortunately - no, since it is a FDA (US FDA) AS2 server. Is there some other information I may provide?

I just realized that the self signed certificate that we are using at our end (one containing the private key) is using SHA-1 while the certificate we received from FDA is using SHA-256. As you may have noticed, in the code I am using SHA-1 for the signature algorithm.

Details of Client Certificate received from FDA

Version: 3
:
:
Valid from: August 22, 2016 6:23 AM
Valid until: August 22, 2018 6:23 AM
Public key: 2048 RSA
Signature algorithm: SHA256WITHRSA
Fingerprint (MD5): 4A:48:CD:E2:AE:60:28:44:B6:C2:A9:72:89:AF:C4:E9
Fingerprint (SHA-1): E5:F5:AD:6E:AF:4B:12:B7:A6:72:64:7F:99:F5:77:B1:67:E2:2F:66

Self Signed certificate details that we sent FDA:

Version: 3
:
:
Valid from: May 4, 2018 4:48 PM
Valid until: May 4, 2019 4:48 PM
Public key: 1024 RSA
Signature algorithm: SHA1WITHRSA
Fingerprint (MD5): C2:B0:E0:CD:09:C2:5D:A6:15:1D:D6:0C:94:CF:95:D3
Fingerprint (SHA-1): AC:F8:AF:21:E3:16:5E:53:DF:43:87:4A:20:0F:8F:00:3A:C8:FB:C5

Could this cause the error?

@phax
Copy link
Owner

phax commented May 29, 2018

Hi. Sorry for the delay. Was on vacation.
Imho the algorithm of the certificate hash is independent of the MIC algorithm you choose.
Are you sure, that the receiving system trusts your self-signed certificate?

@phax phax self-assigned this May 29, 2018
@phax phax added the question label May 29, 2018
@stale
Copy link

stale bot commented May 14, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label May 14, 2019
@phax phax closed this as completed May 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants