Bug 1281864 - Marshalling error accessing remote EJB services app with Sybase DB
Marshalling error accessing remote EJB services app with Sybase DB
Status: VERIFIED
Product: JBoss BPMS Platform 6
Classification: JBoss
Component: jBPM Core (Show other bugs)
6.2.0
Unspecified Unspecified
urgent Severity urgent
: DR1
: 6.3.0
Assigned To: Maciej Swiderski
Radovan Synek
: TestBlocker
Depends On:
Blocks: 1213755 1295535
  Show dependency treegraph
 
Reported: 2015-11-13 11:08 EST by Radovan Synek
Modified: 2016-04-15 11:52 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
When you use Sybase Database Management System with application using EJB services, a marshalling error ("java.lang.ClassNotFoundException: com.sybase.jdbc4.tds.SybTimestamp") may occur with some calls on client side. To fix the issue, add a Sybase JDBC driver on the client class path.
Story Points: ---
Clone Of:
: 1295535 (view as bug list)
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
error stacktrace (deleted)
2015-11-13 11:08 EST, Radovan Synek
no flags Details

  None (edit)
Description Radovan Synek 2015-11-13 11:08:27 EST
Description of problem:
Having a Business Central deployed together with EJB services app to EAP-6.4.4.GA using a Sybase DB. Marshalling error occurs with every query to active process instances, showing "java.lang.ClassNotFoundException: com.sybase.jdbc4.tds.SybTimestamp" as a root cause. Sybase driver probably returns this type for some timestamp column of the ProcessInstanceInfo table and the org.jboss.marshalling.river.RiverUnmarshaller is unable to deal with this class.

Similar issue has been already solved with this release, see bug 1263567

Version-Release number of selected component (if applicable):
6.2.0.ER5

How reproducible:
always

Steps to Reproduce:
1. deploy the EJB services app to EAP
2. trigger RuntimeDataService#getProcessInstances() method using EJB client
3. watch for the error message in response

Additional information:
this is actually a test blocker for EJB remoting with Sybase DB.
Comment 1 Maciej Swiderski 2015-11-17 13:48:07 EST
fixed on master

jbpm
master:
https://github.com/droolsjbpm/jbpm/commit/78a35ca456c5b6c4afcd6eb1551023147f1cd9da

in case it needs to be back ported please assign back to me
Comment 2 Kris Verlaenen 2015-11-18 09:59:27 EST
Requesting backport to 6.3.x
Comment 3 Maciej Swiderski 2015-11-18 10:55:35 EST
back ported to 6.3.x

jbpm
6.3.x:
https://github.com/droolsjbpm/jbpm/commit/394a79af8d4d0b3cc2303129d56d9ca720665963
Comment 4 Radovan Synek 2015-12-03 05:18:03 EST
Have to reassign the issue, as it has been fixed only partially - there are additional classes which cannot be serialized during communication via EJB remoting. Basically, every class containing java.util.Date attribute that could be sent via EJB API is hit by this issue.

Based on failing tests, here is a list of these classes, but there could be more, please double check it:
org.jbpm.kie.services.impl.model.NodeInstanceDesc
org.jbpm.kie.services.impl.model.VariableStateDesc
org.jbpm.kie.services.impl.model.UserTaskInstanceDesc
Comment 5 Maciej Swiderski 2015-12-03 05:22:18 EST
I am starting to think that we should stop fixing (or sort of going around and impacting other parts of code) because of badly written 3rd party code. In this case our solution should be to recommend end users to add sybase driver on client class path and problem will be solved. Trying to spot all possible cases where sybase impl can get in the way might become a never ending story.

Thoughts?
Comment 6 Radovan Synek 2015-12-03 07:31:27 EST
The proposed solution fixes the problem - I suggest rolling back the previously implemented fix and to update a documentation.
Comment 7 Maciej Swiderski 2015-12-14 12:37:47 EST
changes reverted on master

jbpm
master:
https://github.com/droolsjbpm/jbpm/commit/f4cffb54b49168cea78cd58234853a89a9d19986

moving to modified, in case it shall be back ported to 6.3.x branch please put back on me
Comment 8 Radovan Synek 2016-03-15 05:57:16 EDT
Verified with BPMS-6.3.0.DR2

Note You need to log in before you can comment on or make changes to this bug.