LMS

Welcome to the Lobeo Module Server project. Please feel free to submit bugs related to it.
Tasklist

FS#700 - [Core] An error occurs when deploying a module containing a script and a path having parenthesis

Attached to Project: LMS
Opened by Ferdinand (PaGaisu) - Wednesday, 30 October 2013, 15:42 GMT
Last edited by Ferdinand (PaGaisu) - Monday, 04 November 2013, 09:10 GMT
Task Type Bug Report
Category
Status Closed
Assigned To Ferdinand (PaGaisu)
Operating System All
Severity Low
Priority Normal
Reported Version alpha6
Due in Version alpha7
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

An error occurs when deploying a module containing a script and a path having parenthesis


Stack:
java.io.IOException: The module package NewGallery_204.module.zip failed to deploy
at com.lobeo.lms.core.service.impl.ModuleCoreServiceImpl.processTemplate(ModuleCoreServiceImpl.java:742)
at com.lobeo.lms.script.MasterRegistrar.doInstanciation(MasterRegistrar.java:440)
at com.lobeo.lms.script.ScriptManager.getRegisteredScript(ScriptManager.java:389)
at com.lobeo.lms.lobby.ScriptSocketClient.handleScriptConnect(ScriptSocketClient.java:364)
at com.lobeo.lms.lobby.ScriptSocketClient.messageReceived(ScriptSocketClient.java:186)
at com.lobeo.lms.server.http.sock.SockMessageInbound.onTextMessage(SockMessageInbound.java:79)
at org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:74)
at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:186)
at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:134)
at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:83)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:587)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1680)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: An error occurred when starting the module NewGallery_204
at com.lobeo.lms.module.ModuleRepository.startModule(ModuleRepository.java:417)
at com.lobeo.lms.module.ModuleRepository.deployPackage(ModuleRepository.java:579)
at com.lobeo.lms.core.service.impl.RepositoryCoreServiceImpl.installModule(RepositoryCoreServiceImpl.java:128)
at com.lobeo.lms.core.service.impl.ModuleCoreServiceImpl.processTemplate(ModuleCoreServiceImpl.java:740)
... 14 more
Caused by: org.osgi.framework.BundleException: Exception in com.lobeo.lms.script.container.ScriptContainerActivator.start() of bundle com.lobeo.lms.script.ScriptContainer_file__C__Program%20Files%20(x86)_Lobeo_SuperG_bin_.._repo-modules_NewGallery_204_NewGallery.js.jar.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:291)
at com.lobeo.lms.script.deployer.ScriptProcessor.processItemStartup(ScriptProcessor.java:395)
at com.lobeo.lms.module.deployer.DeployerImpl.startItem(DeployerImpl.java:244)
at com.lobeo.lms.module.ModuleRepository.startModule(ModuleRepository.java:380)
... 17 more
Caused by: java.lang.IllegalArgumentException: Unable to create a filter
at com.lobeo.lms.core.event.EventHandlerWrapper.<init>(EventHandlerWrapper.java:89)
at com.lobeo.lms.core.event.EventAdminImpl.registerEventHandler(EventAdminImpl.java:170)
at com.lobeo.lms.core.ContextImpl.registerEventHandler(ContextImpl.java:346)
at com.lobeo.lms.script.container.ScriptContainerActivator.load(ScriptContainerActivator.java:158)
at com.lobeo.lms.framework.Activator.start(Activator.java:50)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
... 24 more
Caused by: org.osgi.framework.InvalidSyntaxException: Invalid value: (x86)/Lobeo/SuperG/bin/../repo-modules/NewGallery_204/NewGallery.js)
at org.osgi.framework.FrameworkUtil$FilterImpl$Parser.parse_substring(FrameworkUtil.java:1581)
at org.osgi.framework.FrameworkUtil$FilterImpl$Parser.parse_item(FrameworkUtil.java:1481)
at org.osgi.framework.FrameworkUtil$FilterImpl$Parser.parse_filtercomp(FrameworkUtil.java:1381)
at org.osgi.framework.FrameworkUtil$FilterImpl$Parser.parse_filter(FrameworkUtil.java:1346)
at org.osgi.framework.FrameworkUtil$FilterImpl$Parser.parse(FrameworkUtil.java:1320)
at org.osgi.framework.FrameworkUtil$FilterImpl.newInstance(FrameworkUtil.java:382)
at org.osgi.framework.FrameworkUtil.createFilter(FrameworkUtil.java:79)
at com.lobeo.lms.core.event.EventHandlerWrapper.<init>(EventHandlerWrapper.java:87)
... 31 more
This task depends upon

Closed by  Ferdinand (PaGaisu)
Monday, 04 November 2013, 09:10 GMT
Reason for closing:  Fixed
Additional comments about closing:  Rev 3021 & 3022
Comment by Ferdinand (PaGaisu) - Monday, 04 November 2013, 09:07 GMT
The underline problem here is the special characters into the filter value such as: < > | ( ) * = ~ / \

after investigation, i noticed the equinox has an issue on backslash, so the solution to escape the characters was as followed:
public static final String escapeSearchFilter(String filterValue) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < filterValue.length(); i++) {
char curChar = filterValue.charAt(i);
switch (curChar) {
case '\\':
sb.append("/5c");
break;
case '*':
sb.append("/2a");
break;
case '(':
sb.append("/28");
break;
case ')':
sb.append("/29");
break;
case '&':
sb.append("/26");
break;
case '=':
sb.append("/3d");
break;
case '>':
sb.append("/3e");
break;
case '<':
sb.append("/3c");
break;
case '|':
sb.append("/7c");
break;
case '~':
sb.append("/7e");
break;
case '/':
sb.append("/2f");
break;
case '\u0000':
sb.append("/00");
break;
default:
sb.append(curChar);
}
}
return sb.toString();
}

Loading...