ingpibe Posted February 13, 2022 Share Posted February 13, 2022 Hello everyone,I require to use the following environment:Openjdk-11 (openjdk-11+28_windows-x64_bin.zip)PostgreSQL v12.10 (postgresql-12.10-1-windows-x64-binaries.zip)JasperReports Server CE v8.0.0 (TIB_js-jrs-cp_8.0.0_bin.zip)When running the steps to install those binary components, the postgresql runs correctly. However, the jasper-reports do not.The error log extract is: ... [java] First resource path: C:jasperreports-server-cp-8.0.0-binbuildomaticconf_sourceieCe [java] Loading configuration resources [java] Initialization complete [java] Processing started [java] Updated tenant organizations [java] Role ROLE_ADMINISTRATOR already exists, skipping. [java] Role ROLE_USER already exists, skipping. [java] Role ROLE_ANONYMOUS already exists, skipping. [java] Exception in thread "main" java.lang.ExceptionInInitializerError [java] at org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle.<init>(ToStringStyle.java:2276) [java] at org.apache.commons.lang.builder.ToStringStyle.<clinit>(ToStringStyle.java:94) [java] at org.apache.commons.lang.builder.ToStringBuilder.<clinit>(ToStringBuilder.java:98) [java] at com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser.toString(RepoUser.java:359) [java] at java.base/java.lang.String.valueOf(String.java:2951) [java] at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) [java] at com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.updateUser(UserAuthorityServiceImpl.java:1716) [java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.base/java.lang.reflect.Method.invoke(Method.java:566) [java] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) [java] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) [java] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) [java] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) [java] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) [java] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [java] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) [java] at com.sun.proxy.$Proxy76.updateUser(Unknown Source) [java] at com.jaspersoft.jasperserver.export.modules.auth.AuthorityImporter.updateUser(AuthorityImporter.java:190) [java] at com.jaspersoft.jasperserver.export.modules.auth.AuthorityImporter.processUser(AuthorityImporter.java:159) [java] at com.jaspersoft.jasperserver.export.modules.auth.AuthorityImporter.importUsers(AuthorityImporter.java:142) [java] at com.jaspersoft.jasperserver.export.modules.auth.AuthorityImporter.process(AuthorityImporter.java:92) [java] at com.jaspersoft.jasperserver.export.ImporterImpl.process(ImporterImpl.java:228) [java] at com.jaspersoft.jasperserver.export.ImporterImpl.performImport(ImporterImpl.java:140) [java] at com.jaspersoft.jasperserver.export.ImportCommandImpl.process(ImportCommandImpl.java:84) [java] at com.jaspersoft.jasperserver.export.BaseExportImportCommand.process(BaseExportImportCommand.java:112) [java] at com.jaspersoft.jasperserver.export.ImportCommand.main(ImportCommand.java:43) [java] Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2 [java] at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319) [java] at java.base/java.lang.String.substring(String.java:1874) [java] at org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:1153) [java] at org.apache.commons.lang.SystemUtils.<clinit>(SystemUtils.java:818) [java] ... 28 moreBUILD FAILEDC:jasperreports-server-cp-8.0.0-binbuildomaticbindb-common.xml:1915: The following error occurred while executing this line:C:jasperreports-server-cp-8.0.0-binbuildomaticbinimport-export.xml:361: The following error occurred while executing this line:C:jasperreports-server-cp-8.0.0-binbuildomaticbinimport-export.xml:168: Java returned: 1These combinations also generate errors:jasper-reports-server-ce v8.0.0 & openjdk-9.jasper-reports-server-ce v7.8.0 & openjdk-9.jasper-reports-server-ce v7.8.0 & openjdk-11.However, with openjdk-8 they work fine (both jasper-reports-server-ce v8.0.0 and v7.8.0)Any help or comments are welcome.Thank you.Atte. JV Link to comment Share on other sites More sharing options...
ingpibe Posted February 18, 2022 Author Share Posted February 18, 2022 Goodnight everyone,I found the solution!!The problem is that SystemUtils make wrong assumptions about the format of "java.version". It completely depends on the vendor what this property contains and it does not have to be at all a string that can be interpreted as float value. It is more or less unfortunate that a Sun JDK matches a number format.For example, the version for Java 8 returns 1.8.0_230. As of java version 9, 10, 11, it always returns a single digit as java version. For example for Openjdk 11, it returns only 11.Solution: The solution is to update the "commons-lang-2.5.jar" library to "commons-lang-2.6.jar".Reference:https://commons.apache.org/proper/commons-lang/changes-report.html (Section 2.6) Fix: SystemUtils: getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM. Fixes LANG-624. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now