Message Boards
Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBoundsExce
Santiago Pérez de la Cámara, modified 3 Years ago.
Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBoundsExce
Junior Member Posts: 53 Join Date: 3/23/12 Recent Posts
Hola:
No sé si se trata de un bug o algo que me falta.Estoy con Liferay 7.3 GA1 y en Liferay Developer Studio creo un tema nuevo utilizando la plantilla "theme".
Tal y como lo genera (heredando en el build.gradle de "styled" y "unstyled"), hago el build y lo despliego, sin incluir nada de código.
Obtengo el siguiente error:
2020-05-11 15:51:11.035 ERROR [fileinstall-C:/eclipse-workspace/XXXX-workspace/bundles/osgi/war][LogService:93] Failed to install artifact: C:\eclipse-workspace\XXXX-workspace\bundles\osgi\war\XXXX-theme.war
java.lang.RuntimeException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.executeAutoDeployers(WabProcessor.java:255)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.autoDeploy(WabProcessor.java:156)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.getProcessedFile(WabProcessor.java:113)
at com.liferay.portal.osgi.web.wab.generator.internal.WabGenerator.generate(WabGenerator.java:90)
at com.liferay.portal.osgi.web.wab.generator.internal.connection.WabURLConnection.getInputStream(WabURLConnection.java:101)
at java.net.URL.openStream(URL.java:1045)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:974)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:896)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:493)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:369)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:320)
Caused by: com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:237)
at com.liferay.portal.deploy.auto.ThemeAutoDeployer.autoDeploy(ThemeAutoDeployer.java:101)
at com.liferay.portal.deploy.auto.ThreadSafeAutoDeployer.autoDeploy(ThreadSafeAutoDeployer.java:39)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.deploy(BaseAutoDeployListener.java:47)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.executeAutoDeployers(WabProcessor.java:252)
... 10 more
¿Es posible que sea un bug? ¿Tengo que hacer algo en el tema para que se despliegue correctamente?
Muchas gracias,
Santiago
No sé si se trata de un bug o algo que me falta.Estoy con Liferay 7.3 GA1 y en Liferay Developer Studio creo un tema nuevo utilizando la plantilla "theme".
Tal y como lo genera (heredando en el build.gradle de "styled" y "unstyled"), hago el build y lo despliego, sin incluir nada de código.
Obtengo el siguiente error:
2020-05-11 15:51:11.035 ERROR [fileinstall-C:/eclipse-workspace/XXXX-workspace/bundles/osgi/war][LogService:93] Failed to install artifact: C:\eclipse-workspace\XXXX-workspace\bundles\osgi\war\XXXX-theme.war
java.lang.RuntimeException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.executeAutoDeployers(WabProcessor.java:255)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.autoDeploy(WabProcessor.java:156)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.getProcessedFile(WabProcessor.java:113)
at com.liferay.portal.osgi.web.wab.generator.internal.WabGenerator.generate(WabGenerator.java:90)
at com.liferay.portal.osgi.web.wab.generator.internal.connection.WabURLConnection.getInputStream(WabURLConnection.java:101)
at java.net.URL.openStream(URL.java:1045)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:974)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:896)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:493)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:369)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:320)
Caused by: com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:237)
at com.liferay.portal.deploy.auto.ThemeAutoDeployer.autoDeploy(ThemeAutoDeployer.java:101)
at com.liferay.portal.deploy.auto.ThreadSafeAutoDeployer.autoDeploy(ThreadSafeAutoDeployer.java:39)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.deploy(BaseAutoDeployListener.java:47)
at com.liferay.portal.osgi.web.wab.generator.internal.processor.WabProcessor.executeAutoDeployers(WabProcessor.java:252)
... 10 more
¿Es posible que sea un bug? ¿Tengo que hacer algo en el tema para que se despliegue correctamente?
Muchas gracias,
Santiago
Santiago Pérez de la Cámara, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds
Junior Member Posts: 53 Join Date: 3/23/12 Recent Posts
He encontrado el problema.
Se trata de la propiedad "module-group-id" del fichero "liferay-plugin-package.properties".
A diferencia de otros proyectos war que tengo (portlets JSF) en los que en esa propiedad se pueden utilizar todo tipo de caracteres, parece que en los temas es diferente y arroja ese error si encuentra algo que no le gusta.
Esta es la propiedad que me genera la excepción StringIndexOutOfBoundsException:
Santiago
Se trata de la propiedad "module-group-id" del fichero "liferay-plugin-package.properties".
A diferencia de otros proyectos war que tengo (portlets JSF) en los que en esa propiedad se pueden utilizar todo tipo de caracteres, parece que en los temas es diferente y arroja ese error si encuentra algo que no le gusta.
Esta es la propiedad que me genera la excepción StringIndexOutOfBoundsException:
- module-group-id=ISCIII/UITES/test-theme/7.3.0/war
- module-group-id=ISCIII-UITES-test-theme
Santiago
Álvaro Saugar López, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds
New Member Posts: 2 Join Date: 1/6/20 Recent Posts
La propiedad module-group-id indica el grupo al que pertenece la aplicación, que se suele relacionar con el identificador de la categoría (el desplegable en el que se organizan los widgets) que se indica en liferay-display.xml (no es obligatoria, pero sí una recomendación). La verdad que nunca he puesto caracteres especiales ya que usaba lo mismo que para la categoría, que tiene más limitaciones para poder ser traducida, pero tendría sentido. Cierto que en los temas no se muestran en el listado de widgets, pero por lo que he visto, los métodos que se usan acaban llamando al mismo método padre, por lo que puede ser el motivo.
A parte de si es una limitación (que tendría que tendríamos que documentar) o un bug , ¿hay algún motivo por el que te interese indicarlo así? (por saberlo principalmente).
A parte de si es una limitación (que tendría que tendríamos que documentar) o un bug , ¿hay algún motivo por el que te interese indicarlo así? (por saberlo principalmente).
Santiago Pérez de la Cámara, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds
Junior Member Posts: 53 Join Date: 3/23/12 Recent Posts
No tengo ningún interés especial en indicarlo de esa forma. Estoy poniendo algo similar en el resto de proyectos (portlets) que estoy creando y era por seguir la misma nomenclatura. Tampoco sabía cuál era la utilidad exacta de esa propiedad.Gracias Álvaro!
Álvaro Saugar López, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds
New Member Posts: 2 Join Date: 1/6/20 Recent Posts
Se me ha olvidado ponerlo, la case en la que se despliega el theme (que sale en la traza) es ThemeAutoDeployer, que se puede ver que da error al llamar al super (línea 101), que acaba llamando a la clase BaseDeployer, dónde da el error (genérica para todos los componentes).
Marcial Calvo Valenzuela, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds (Answer)
New Member Posts: 4 Join Date: 4/15/20 Recent Posts
el problema, como has podido ver, es el incluir el caracter slash en el nombre de la property
Como te ha indicado Álvaro, dicha property se usa para conformar el moduleId. En este punto, como podéis observar en el TAG concreto a la versión que estás ejecutando (7.3.0-ga1), el moduleId es
resultando en tu caso el siguiente moduleId
obteniendo en el momento del despliegue (en este punto)
groupId=ISCIII
artifactId=UITES
pluginVersion=test
type=theme
Con estos valores en dichas variables, si vamos a la línea 125 de ThemeDeployer.java, llega el momento en el que se busca en el artifactId la cadena
groupId=ISCIII-UITES-test-theme-7.3.0-war
artifactId=test-theme
pluginVersion=7.3.0.1
type=warTras revisar el código de versiones anteriores y futuras(máster), el uso del slash en la property tampoco te permitiría desplegar ese theme
Por tanto en el
module-group-id
Como te ha indicado Álvaro, dicha property se usa para conformar el moduleId. En este punto, como podéis observar en el TAG concreto a la versión que estás ejecutando (7.3.0-ga1), el moduleId es
groupId+"/"+artifactId+"/"+pluginVersion+"/"+type
resultando en tu caso el siguiente moduleId
ISCIII/UITES/test/theme/7.3.0/war/my-new-theme/7.3.0.1/war
obteniendo en el momento del despliegue (en este punto)
groupId=ISCIII
artifactId=UITES
pluginVersion=test
type=theme
Con estos valores en dichas variables, si vamos a la línea 125 de ThemeDeployer.java, llega el momento en el que se busca en el artifactId la cadena
-theme
para hacer luego un substring y sacar el themeId, donde te está arrojando la excepción.Utilizando “-” en lugar del slash “/”, obtendrías los valores correctos y esperados:groupId=ISCIII-UITES-test-theme-7.3.0-war
artifactId=test-theme
pluginVersion=7.3.0.1
type=warTras revisar el código de versiones anteriores y futuras(máster), el uso del slash en la property tampoco te permitiría desplegar ese theme
Por tanto en el
module-group-id
no es posible la inserción del caracter “/”
Santiago Pérez de la Cámara, modified 3 Years ago.
RE: Liferay 7.3.0 - Error en WabProcessor: java.lang.StringIndexOutOfBounds
Junior Member Posts: 53 Join Date: 3/23/12 Recent Posts
Muchas gracias Marcial!