You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "John Huss (JIRA)" <ji...@apache.org> on 2014/08/07 21:45:14 UTC
[jira] [Created] (CAY-1941) Crypto - class cast exception when
using java.lang.String with VARBINARY column
John Huss created CAY-1941:
------------------------------
Summary: Crypto - class cast exception when using java.lang.String with VARBINARY column
Key: CAY-1941
URL: https://issues.apache.org/jira/browse/CAY-1941
Project: Cayenne
Issue Type: Bug
Components: Core Library
Affects Versions: 3.2M1
Environment: Commit 9eb1f32305ff6d232ae938ea91a9eeed9c9ed584
Reporter: John Huss
When using the cayenne-crypto module with a VARBINARY column mapped to a java.lang.String attribute, a class cast exception is thrown because the jdbc data is deserialized as a String when it was expected to be a byte[].
java.lang.ClassCastException: java.lang.String cannot be cast to [B
at org.apache.cayenne.crypto.transformer.value.BytesToBytesConverter.toBytes(BytesToBytesConverter.java:30)
at org.apache.cayenne.crypto.transformer.value.DefaultValueDecryptor.decrypt(DefaultValueDecryptor.java:50)
at org.apache.cayenne.crypto.transformer.DefaultMapTransformer.transform(DefaultMapTransformer.java:50)
at org.apache.cayenne.crypto.reader.CryptoRowReaderFactoryDecorator$1.readRow(CryptoRowReaderFactoryDecorator.java:75)
at org.apache.cayenne.access.jdbc.JDBCResultIterator.nextRow(JDBCResultIterator.java:104)
at org.apache.cayenne.access.jdbc.JDBCResultIterator.allRows(JDBCResultIterator.java:80)
at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:181)
at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:97)
at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:293)
at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:438)
at org.apache.cayenne.access.DataDomainQueryAction.access$0(DataDomainQueryAction.java:417)
at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:411)
at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:720)
at org.apache.cayenne.access.DataDomainQueryAction.runQueryInTransaction(DataDomainQueryAction.java:407)
at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:121)
at org.apache.cayenne.access.DataDomain.onQueryNoFilters(DataDomain.java:610)
at org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery(DataDomain.java:847)
at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:602)
at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:350)
at org.apache.cayenne.util.ObjectContextQueryAction.executePostCache(ObjectContextQueryAction.java:106)
at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:93)
at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:968)
at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:957)
at org.apache.cayenne.BaseContext.select(BaseContext.java:302)
at org.apache.cayenne.tutorial.Main.main(Main.java:50)
--
This message was sent by Atlassian JIRA
(v6.2#6252)