Build failure in core-dto in Jenkins

36 views
Skip to first unread message

chris...@gmail.com

unread,
Oct 23, 2017, 6:16:32 AM10/23/17
to YesCart - pure eCommerce, platform with open source
Hi there, I set up a Jenkins project and got the following during compilation:

main:
[echo] =========================================================================================================================================================
[echo] |
[echo] | __ _______ ______
[echo] | \ \ / / ____| | ____| v.3.3.1-SNAPSHOT (build: ${buildNumber})
[echo] | \ \_/ | | ______ _ __ _ _ _ __ ___| |__ ___ ___ _ __ ___ _ __ ___ ___ _ __ ___ ___
[echo] | \ /| | |______| '_ \| | | | '__/ _ | __| / __/ _ \| '_ ` _ \| '_ ` _ \ / _ | '__/ __/ _ \
[echo] | | | | |____ | |_) | |_| | | | __| |___| (_| (_) | | | | | | | | | | | __| | | (_| __/
[echo] | |_| \_____| | .__/ \__,_|_| \___|______\___\___/|_| |_| |_|_| |_| |_|\___|_| \___\___|
[echo] | | |
[echo] | |_| Copyright 2017 http://www.yes-cart.org
[echo] |
[echo] =========================================================================================================================================================
[echo]
[echo] YC module core-dto-3.3.1-SNAPSHOT-rev.${buildNumber} configurations:
[echo]
[echo] Environment configuration (use -Denv=x to switch) : dev
[echo] Database provider (use -Pmysql or -Pderby) : derby
[echo] Tomcat SSL configuration (use -Pssl) : off
[echo] JAM npm goal (use -Dnpm.goal=x to switch) : build.prod
[echo] JAM npm target (use -Dnpm.target.home=x to switch) : prod (typescript/dist/prod)
[echo] JAM npm modules (use -Dnpm.target.modules=x to switch) : node_modules_prod (typescript/node_modules_prod)
[echo]
[echo] Payment modules
[echo] LiqPay payments (use -PpaymentLiqPay or -PpaymentAll) : off
[echo] Cybersource payments (use -PpaymentCybersource or -PpaymentAll) : off
[echo] Authorize.Net payments (use -PpaymentAuthorize or -PpaymentAll) : off
[echo] PayPal payments (use -PpaymentPaypal or -PpaymentAll) : off
[echo] PostFinance payments (use -PpaymentPostFinance or -PpaymentAll) : off
[echo]
[echo] Web Apps
[echo] Storefront: yes-shop.war
[echo] REST API : yes-api.war
[echo] ADMIN : yes-manager.war
[echo]
[echo] Tips:
[echo] * use mvn help:all-profiles or help:active-profiles to list profiles available
[echo] * documentation for YC profiles is available at http://www.inspire-software.com/confluence/display/YC3EN/From+source#Fromsource-Mavenprofilesandvariables
[echo] =========================================================================================================================================================
[INFO] Executed tasks
[INFO]
[INFO] --- maven-clean-plugin:2.2:clean (default) @ core-dto ---
[INFO] Deleting directory /var/lib/jenkins/workspace/Yescart/core-dto/target
[INFO] Deleting file-set: /var/lib/jenkins/workspace/Yescart/core-dto (included: [luceneindex], excluded: [])
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ core-dto ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ core-dto ---
[INFO] Compiling 100 source files to /var/lib/jenkins/workspace/Yescart/core-dto/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ core-dto ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ core-dto ---
[INFO] Compiling 27 source files to /var/lib/jenkins/workspace/Yescart/core-dto/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (isolated-dirty-test) @ core-dto ---
[INFO] Surefire report directory: /var/lib/jenkins/workspace/Yescart/core-dto/target/surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running org.yes.cart.service.dto.impl.ComplexSearchUtilsTest
Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.123 sec <<< FAILURE!

Results :

Failed tests: testCheckDateRangeSearch(org.yes.cart.service.dto.impl.ComplexSearchUtilsTest): expected:<1982-01-01 00:[0]0:00.000> but was:<1982-01-01 00:[3]0:00.000>

Tests run: 3, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Yes Cart ........................................... SUCCESS [ 0.931 s]
[INFO] Yes cart payment API ............................... SUCCESS [ 6.123 s]
[INFO] Yes cart domain api ................................ SUCCESS [ 1.841 s]
[INFO] Yes cart persistence ............................... SUCCESS [ 23.278 s]
[INFO] Yes cart core modules .............................. SUCCESS [ 0.077 s]
[INFO] Yes cart core: Http support ........................ SUCCESS [ 1.161 s]
[INFO] Yes cart core service .............................. SUCCESS [02:14 min]
[INFO] Yes cart core: Basic payment module Courier, In Store and Pre paid offline (+Test and TestExt) SUCCESS [ 10.797 s]
[INFO] Yes cart core: PayPal payments ..................... SUCCESS [ 3.497 s]
[INFO] Yes cart core: Cybersource payments ................ SUCCESS [ 3.495 s]
[INFO] Yes cart core: AuthorizeNet payments ............... SUCCESS [ 3.587 s]
[INFO] Yes cart core: LiqPay payments ..................... SUCCESS [ 0.933 s]
[INFO] Yes cart core: Robokassa payments (W-I-P) .......... SUCCESS [ 0.878 s]
[INFO] Yes cart core: PostFinance payments ................ SUCCESS [ 0.923 s]
[INFO] Yes cart core: Default order state machine ......... SUCCESS [01:55 min]
[INFO] Yes cart core: JGroups cluster support ............. SUCCESS [ 1.047 s]
[INFO] Yes cart core: WebServices cluster support ......... SUCCESS [ 0.801 s]
[INFO] Yes cart core: reports support ..................... SUCCESS [ 2.562 s]
[INFO] Yes cart core: Jobs ................................ SUCCESS [ 0.422 s]
[INFO] Yes cart core: Import/Export ....................... SUCCESS [ 22.560 s]
[INFO] Yes cart core: cart support ........................ SUCCESS [ 1.390 s]
[INFO] Yes cart core: cart support for web ................ SUCCESS [ 0.414 s]
[INFO] Yes cart core DTO service .......................... FAILURE [ 1.177 s]
[INFO] Yes cart themes modules ............................ SKIPPED
[INFO] Yes cart themes: mail templates .................... SKIPPED
[INFO] Yes cart themes: reports templates ................. SKIPPED
[INFO] Yes cart themes: imagevault structure .............. SKIPPED
[INFO] Yes cart web modules ............................... SKIPPED
[INFO] Yes cart web: web support .......................... SKIPPED
[INFO] Yes cart web: Storefront (Wicket) .................. SKIPPED
[INFO] Yes cart web: REST API ............................. SKIPPED
[INFO] Yes cart Admin modules ............................. SKIPPED
[INFO] Yes cart JAM: value objects ........................ SKIPPED
[INFO] Yes cart JAM: services ............................. SKIPPED
[INFO] Yes cart JAM: JS client ............................ SKIPPED
[INFO] Yes cart JAM: server ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:38 min
[INFO] Finished at: 2017-10-23T16:22:54+08:00
[INFO] Final Memory: 69M/398M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (isolated-dirty-test) on project core-dto: There are test failures.
[ERROR]
[ERROR] Please refer to /var/lib/jenkins/workspace/Yescart/core-dto/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :core-dto

But the program compiled fine in OS X. No issue when doing that Assertion.

Maven, Ant, NPM used are exactly the same version.

Did I miss something?

rgds,
Chris

Yes Cart

unread,
Oct 23, 2017, 6:26:11 AM10/23/17
to YesCart - pure eCommerce, platform with open source
Hi,

ComplexSearchUtils parses string date in order to create a Date object. It uses "yyyy-MM-dd" format where MM and dd are optional. In the test case that fails for you you have this check:

search = ComplexSearchUtils.checkDateRangeSearch("1982<");
assertNotNull(search);
assertEquals("1982-01-01 00:00:00.000", format.format(search.getFirst()));
assertNull(search.getSecond());

So 1982  - should translate to 1st Jan 1982 but for you it adds 30min and makes it 30min past 1st Jan. 
We use Calendar.getInstance() and set each value (year, month, day) as per input and then set hours, minutes, seconds and milliseconds to 0.

I think this could be TimeZone related. Could you check the TimeZone on your Jenkings? or better yet debug ComplexSearchUtils.stringToDate()

Regards,
YC team

chris...@gmail.com

unread,
Oct 24, 2017, 5:24:55 AM10/24/17
to YesCart - pure eCommerce, platform with open source
Thanks for the info. Timzone on Jenkins is Singapore. It is strange that there is a difference of 30 mins. I'll take a look at it and see what I can do on the system as I do not want to modify the codebase.

rgds,
Chris

Yes Cart

unread,
Oct 24, 2017, 5:30:16 AM10/24/17
to YesCart - pure eCommerce, platform with open source
Hi,

If you can find the root cause of this we could update unit tests.
The weird thing is that ComplexSearchUtils.stringToDate() sets all hours/minutes/second to zero as the last step.

cal.set(Calendar.HOUR_OF_DAY, 0);
cal
.set(Calendar.MINUTE, 0);
cal
.set(Calendar.SECOND, 0);
cal
.set(Calendar.MILLISECOND, 0);
return cal.getTime();

So it is a puzzle why we end up with +30min in date? Maybe cal.getTime() makes some adjustments for the Singapore timezone? What Calendar instance is it using? It is Gregorian or something different?

Regards,
YC team
Reply all
Reply to author
Forward
0 new messages