Salesforce

WorldServer - after installing Hotfix CRQ-4539, searching for duplicates with recommended parameters leads to internal error "Expression type int is invalid for COLLATE clause."

« Go Back

Information

 
Article TypeSolution Article
Scope/EnvironmentWorldServer
Symptoms/Context
After installing Hotfix CRQ-4539 in WorldServer 11.4.2. or upgrading to a version that already includes this Hotfix (11.6.x), running a Search for Duplicates following the recommendations provided in this article fails with an internal error as follows:
 
Time: Tue Sep 29 16:24:05 EEST 2020

Message:

Stack trace:

com.idiominc.ws.storage.StorageException
(covers com.idiominc.ws.sql.WSSQLException
(covers java.sql.SQLException: [SDL WorldServer][SQLServer JDBC Driver][SQLServer]Expression type int is invalid for COLLATE clause.
	at com.idiominc.jdbc.sqlserverbase.ddcw.b(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddcw.a(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddcv.b(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddcv.a(Unknown Source)
	at com.idiominc.jdbc.sqlserver.tds.ddr.v(Unknown Source)
	at com.idiominc.jdbc.sqlserver.tds.ddr.a(Unknown Source)
	at com.idiominc.jdbc.sqlserver.tds.ddq.a(Unknown Source)
	at com.idiominc.jdbc.sqlserver.tds.ddr.c(Unknown Source)
	at com.idiominc.jdbc.sqlserver.dda4.m(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.dde7.e(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.dde7.a(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddd2.a(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.dde7.x(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.dde7.w(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddd2.executeQuery(Unknown Source)
	at com.idiominc.jdbc.sqlserverbase.ddd6.executeQuery(Unknown Source)
	at com.idiominc.jdbcx.sqlserverbase.ddn.executeQuery(Unknown Source)
	at com.idiominc.ws.sql.WSPreparedStatement.executeQuery(WSPreparedStatement.java:540)
	at com.idiominc.ws.storage.TmTranslationStorage.lookupPattern(TmTranslationStorage.java:5354)
	at com.idiominc.ws.storage.TmTranslationStorage.lookupWords(TmTranslationStorage.java:3235)
	at com.idiominc.ws.storage.TmTranslationStorage.lookupBySubstring(TmTranslationStorage.java:4638)
	at com.idiominc.ws.storage.TmTranslationStorage$21.run(TmTranslationStorage.java:4668)
	at com.idiominc.ws.sql.ConnectionLease.doSQLAction(ConnectionLease.java:41)
	at com.idiominc.ws.storage.TmTranslationStorage.lookupBySubstring(TmTranslationStorage.java:4689)
	at com.idiominc.ws.tm.TmManager.lookupBySubstring(TmManager.java:2060)
	at com.idiominc.ws.tm.TmManager.search(TmManager.java:1316)
	at com.idiominc.ws.tm.TmManager.search(TmManager.java:1222)
	at com.idiominc.ws.tm.TmManager.search(TmManager.java:1169)
	at com.idiominc.ws.servlet.tm.SearchTm.doSearch(SearchTm.java:1649)
	at com.idiominc.ws.servlet.tm.SearchTm.buildUI(SearchTm.java:607)
	at com.idiominc.ws.servlet.tm.SearchTm.handle(SearchTm.java:474)
	at com.idiominc.ws.servlet.WSHttpServlet.handleServlet(WSHttpServlet.java:417)
	at com.idiominc.ws.servlet.WSHttpServlet.service(WSHttpServlet.java:193)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.sdl.lt.worldserver.webfilters.header.ResponseHeaderManagerFilter.doFilter(ResponseHeaderManagerFilter.java:163)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.idiominc.ws.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:607)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
)
)
Resolution
This issue will be fixed in WorldServer 11.7.

The simple workaround is to place the 2 parameters

Previous Source entry
Next Source Entry


on the top of the Duplicates Search configuration, as displayed in this screenshot:

User-added image

The order of attributes is not relevant for the search results.

Note: these 2 parameters are recommended only if you want to include context and ICE Matches in your search for duplicates. If you want to remove all duplicates based only on Source and Target language, you can do that. You can configure the Duplicates Search further to include other parameters as well such as Entry Origin or any other system or custom TM attributes you might want to be taken into consideration in the search for duplicates..
Root Cause
The two recommended parameters:

Previous Source entry
Next Source Entry


cause the search to fail if placed at the bottom of the Duplicates Search configuration:

User-added image



Removing these parameters from the Search will allow a successful Search. The defect CRQ-4539 has been re-opened since this scenario was missed during QA. A new Hotfix will be delivered. This article will be updated once this happens.
Reference
Attachment 1 
Attachment 2 
Attachment 3 
Attachment 4 
Attachment 5 

Powered by