openTCS / opentcs

The open Transportation Control System (by Fraunhofer IML)
https://www.opentcs.org/
MIT License
324 stars 114 forks source link

Hi,OperationDesk run failed from eclipse in ubuntu,opentcs version is v5,2 ,jdk13 #15

Closed leigetiwen closed 2 years ago

leigetiwen commented 2 years ago

Hi,

I'm trying to compile and run this project via IntelliJ IDEA. I have JAVA platform 13 and Gradle 6.8.3 as my environment. It all seems good because I can build project without error. But when I run OperationDesk, only openTCS logo pops up and throw these bugs--

com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.ExceptionInInitializerError at org.opentcs.guing.components.dockable.DockingManagerOperating.(Unknown Source) at org.opentcs.guing.components.dockable.DockableInjectionModule.configure(DockableInjectionModule.java:26) (via modules: com.google.inject.util.Modules$OverrideModule -> org.opentcs.guing.DefaultPlantOverviewInjectionModule -> org.opentcs.guing.components.ComponentsInjectionModule -> org.opentcs.guing.components.dockable.DockableInjectionModule) while locating org.opentcs.guing.components.dockable.DockingManagerOperating for the 1st parameter of org.opentcs.guing.application.ViewManagerOperating.(Unknown Source) at org.opentcs.guing.application.ApplicationInjectionModule.configure(ApplicationInjectionModule.java:61) (via modules: com.google.inject.util.Modules$OverrideModule -> org.opentcs.guing.DefaultPlantOverviewInjectionModule -> org.opentcs.guing.application.ApplicationInjectionModule) while locating org.opentcs.guing.application.ViewManagerOperating for the 5th parameter of org.opentcs.guing.application.OpenTCSView.(Unknown Source) at org.opentcs.guing.application.ApplicationInjectionModule.configure(ApplicationInjectionModule.java:69) (via modules: com.google.inject.util.Modules$OverrideModule -> org.opentcs.guing.DefaultPlantOverviewInjectionModule -> org.opentcs.guing.application.ApplicationInjectionModule) while locating org.opentcs.guing.application.OpenTCSView for the 3rd parameter of org.opentcs.guing.application.PlantOverviewStarter.(Unknown Source) while locating org.opentcs.guing.application.PlantOverviewStarter

1 error at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:226) at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1053) at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1086) at org.opentcs.guing.RunOperationsDesk.main(RunOperationsDesk.java:58) Caused by: java.lang.ExceptionInInitializerError at bibliothek.gui.dock.common.intern.EfficientControlFactory.createController(EfficientControlFactory.java:49) at bibliothek.gui.dock.common.CControl.init(CControl.java:482) at bibliothek.gui.dock.common.CControl.(CControl.java:460) at bibliothek.gui.dock.common.CControl.(CControl.java:444) at bibliothek.gui.dock.common.CControl.(CControl.java:389) at bibliothek.gui.dock.common.CControl.(CControl.java:366) at org.opentcs.guing.components.dockable.DockingManagerOperating.(DockingManagerOperating.java:120) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at com.google.inject.internal.DefaultConstructionProxyFactory$ReflectiveProxy.newInstance(DefaultConstructionProxyFactory.java:126) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) Caused by: java.lang.ExceptionInInitializerError

at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1050)
... 2 more

Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 2 at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3720) at java.base/java.lang.String.substring(String.java:1909) at bibliothek.gui.DockUI.registerColors(DockUI.java:169) at bibliothek.gui.DockUI.(DockUI.java:133) at bibliothek.gui.DockUI.getDefaultDockUI(DockUI.java:120) at bibliothek.gui.DockController.(DockController.java:155) ... 43 more

Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 2


Could anyone help me here please~ much appericiate!!!

Originally posted by @EmoryHe in https://github.com/openTCS/opentcs/discussions/5

martingr commented 2 years ago

Hi, in the title it says Eclipse but in your description you mention IntelliJ IDEA. Please clarify which IDE you're using and which Version of Ubuntu you are experiencing this issue with.

Also, please note that the latest release of openTCS is 5.4.

leigetiwen commented 2 years ago

Hi, in the title it says Eclipse but in your description you mention IntelliJ IDEA. Please clarify which IDE you're using and which Version of Ubuntu you are experiencing this issue with.

Also, please note that the latest release of openTCS is 5.4.

sorry ,i use eclipse ide in ubuntu18.04. I have JAVA platform 13 and Gradle 4.10.3 as my environment.and I correct my description .then the error is same

martingr commented 2 years ago

Have you tried building and running the project/the Operations Desk application without Eclipse?

Try running ./gradlew clean build from the project's root directory. Then, try running the Operations Desk application's start script in the root project's build directory (i.e. build/install/openTCS/openTCS-OperationsDesk/startOperationsDesk.sh).

Does the application start successfully this way? If yes, then the issue is probably related to the configuration of your IDE.

leigetiwen commented 2 years ago

Have you tried building and running the project/the Operations Desk application without Eclipse?

Try running ./gradlew clean build from the project's root directory. Then, try running the Operations Desk application's start script in the root project's build directory (i.e. build/install/openTCS/openTCS-OperationsDesk/startOperationsDesk.sh).

Does the application start successfully this way? If yes, then the issue is probably related to the configuration of your IDE.

I attemp to run script,the kernel.sh ,kernelcontrol.sh is ok,but startOperationsDesk (sh startOperationsDesk.sh ) program will report exception. the error is same

swltr commented 2 years ago

Can you reproduce this problem with openTCS 5.4?

leigetiwen commented 2 years ago

i try to build v5.2 and v5.4 ,but the same error

martingr commented 2 years ago

I'm not able to reproduce this problem using:

What version of Java 13 are you using? Can you paste your output of java --version?

leigetiwen commented 2 years ago

I'm not able to reproduce this problem using:

  • Ubuntu 18.04
  • AdoptOpenJDK 13.0.2+8
  • openTCS 5.2

What version of Java 13 are you using? Can you paste your output of java --version?

ok i paste my all sorftware version. java version: openjdk 13 2019-09-17 OpenJDK Runtime Environment (build 13+33) OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing) ubuntu: Linux ubuntu 5.4.0-105-generic #119~18.04.1-Ubuntu SMP Tue Mar 8 11:21:24 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux gradle version:

Gradle 6.8.3

Build time: 2021-02-22 16:13:28 UTC Revision: 9e26b4a9ebb910eaa1b8da8ff8575e514bc61c78

Kotlin: 1.4.20 Groovy: 2.5.12 Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020 JVM: 13 (Oracle Corporation 13+33) OS: Linux 5.4.0-105-generic amd64 opetcs version: V5.4 and V5.2 is same error

I can not modify source code。and i use ./gradlew clean build this command

swltr commented 2 years ago

You are using Oracle JRE version 13. IIRC, the DockingFrames library we use parses the JVM's reported version string, and it has a problem with parsing the one reported by the Oracle JVM. Can you please try to use AdoptOpenJDK 13, instead, and let us know whether that allows you to start the software normally?

leigetiwen commented 2 years ago

You are using Oracle JRE version 13. IIRC, the DockingFrames library we use parses the JVM's reported version string, and it has a problem with parsing the one reported by the Oracle JVM. Can you please try to use AdoptOpenJDK 13, instead, and let us know whether that allows you to start the software normally?

thank you very much ,the problem have solved