StringIndexOutOfBoundsException during [IBM i Command Build
StringIndexOutOfBoundsException during
RTCi IBM Rational Developer for i 7.5.0.3 IBM Rational Developer for i, Version 7.5.0.3 Interim Fix 001 After the last source member was built, these messages appear and the build stops: java.lang.StringIndexOutOfBoundsException at java.lang.String.charAt(String.java:415) at java.util.regex.Matcher.appendReplacement(Matcher.java:720) at java.util.regex.Matcher.replaceAll(Matcher.java:822) at java.lang.String.replaceAll(String.java:1566) at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.generateCommand(QcmdBuildParticipant.java:1025) at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.buildProject(QcmdBuildParticipant.java:429) at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.executeCommandOnAll(QcmdBuildParticipant.java:360) at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.build(QcmdBuildParticipant.java:216) at com.ibm.team.build.internal.engine.BuildLoop.invokeBuildParticipants(BuildLoop.java:601) at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:432) at java.lang.Thread.run(Thread.java:811) What can I do to clear this error? I can't complete a build and deliver all my changes. |
13 answers
StringIndexOutOfBoundsException during I would raise a defect here on jazz.net unless someone else can suggest what went wrong. anthony |
This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK
|
This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following: cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse Here is the resulting Command for the current build engine from the IBM i job that was submitted: QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********') Here are the installed license programs on my IBM i: 5722JV1 V5R4M0 IBM Developer Kit for Java We are running WAS 6.1 on the IBM i. Bud. |
Bud,
Yes, that example is Windows-specific. I'm not exactly sure how the startup.qsh wrapper works on iSeries, or how to modify it to refer to a different JDK, but the preferred JDK is either the one that ships with RTC, or IBM 1.5.0 SR11 (or later). It may also be that the problem is with special characters in the configured command line. Please see my question in the work item I've filed for this. Let's follow up there. Regards, Nick |
Bud, Nick,
I wonder what JDK is being used? Bud |
Hi Bud,
Do you have a special character, such as '$', '@' or '#', in your library, source file or member names? Thanks, Kushal This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following: cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse Here is the resulting Command for the current build engine from the IBM i job that was submitted: QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********') Here are the installed license programs on my IBM i: 5722JV1 V5R4M0 IBM Developer Kit for Java We are running WAS 6.1 on the IBM i. Bud. |
Bud, I've asked our webmaster why you can't access the work item. I think you should be able to. I'll let Kushal follow up on the original problem (thanks Kushal).
|
Hi Bud, This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following: cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse Here is the resulting Command for the current build engine from the IBM i job that was submitted: QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********') Here are the installed license programs on my IBM i: 5722JV1 V5R4M0 IBM Developer Kit for Java We are running WAS 6.1 on the IBM i. Bud. Kushal, Yes, I have some of each in member names only. That must be a problem? Some of these member names with special characters have been delivered and built for upwards of a year now. I also have the underscore character in some member names. None of the source file names contain any special characters. A few libraries have a period in the middle of the name (carry over from ADM). Bud. |
Bud, are you getting a specific error when you try to follow the link to the work item? Are you able to view other work items in other project areas on jazz.net? jazz.net/jazz or jazz.net/jazz02, etc. I was able to browse to that work item using another public ID that I have, so it seems that the permissions are correct. Are you using ALSWizard as your jazz.net login ID? |
Bud, are you getting a specific error when you try to follow the link to the work item? Are you able to view other work items in other project areas on jazz.net? jazz.net/jazz or jazz.net/jazz02, etc. I was able to browse to that work item using another public ID that I have, so it seems that the permissions are correct. Are you using ALSWizard as your jazz.net login ID? The message was to the effect that my ID was not authorized. I didn't copy it. However, I just tried and I get: Bad Gateway Yes, alswizard. Is it case sensitive? Bud |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.