phantom-dsl


Phantom's generated `store` method throws a ClassCastException at runtime


I have the following Phantom table definition:
package myPackage
import com.outworkers.phantom.CassandraTable
import com.outworkers.phantom.connectors.RootConnector
import com.outworkers.phantom.dsl._
import com.outworkers.phantom.keys.{PartitionKey, PrimaryKey}
import scala.concurrent.Future
case class KeysTwoThreeAndFour(myKeyTwo: Int, myKeyThree: String, myKeyFour: Int)
abstract class MyTable extends CassandraTable[MyTable, Int] with RootConnector {
object myKeyOne extends IntColumn(this) with PartitionKey
object myKeyTwo extends IntColumn(this) with PrimaryKey
object myKeyThree extends StringColumn(this) with PrimaryKey
object myKeyFour extends IntColumn(this) with PrimaryKey
object myValue extends IntColumn(this)
def insertValue(myKeyOne: Int, valuesMap: Map[KeysTwoThreeAndFour, Int]): Future[Unit] = {
val resultFutures = for ((key: KeysTwoThreeAndFour, myValue) <- valuesMap) yield {
store(myKeyOne, key.myKeyTwo, key.myKeyThree, key.myKeyFour, myValue).future()
}
Future.sequence(resultFutures).map { _ => () }
}
}
This compiles fine, but at runtime throws the following exception:
java.lang.ClassCastException: scala.Tuple5 cannot be cast to scala.runtime.Nothing$
at myPackage.MyTable$anon$macro$1$1.store(MyTable.scala:10)
at com.outworkers.phantom.CassandraTable.store(CassandraTable.scala:125) ~[com.outworkers.phantom-dsl_2.11-2.7.6.jar:2.7.6]
at myPackage.MyTable$$anonfun$2.apply(MyTable.scala:19)
at myPackage.MyTable$$anonfun$2.apply(MyTable.scala:18)
...
I am following the examples in the bottom of the Phantom table docs, what seems to be the problem? Is the issue perhaps that I have a simple Int as my "Record" type instead of an actual class?
I am using phantom-dsl 2.7.6, Play Framework 2.3.10 and Scala 2.11.11.
Note that the following code works fine:
insert
.value(_.myKeyOne, myKeyOne)
.value(_.myKeyTwo, key.myKeyTwo)
.value(_.myKeyThree, key.myKeyThree)
.value(_.myKeyFour, key.myKeyFour)
.value(_.myValue, myValue)
.future()
Thanks.

Related Links

Phantom's generated `store` method throws a ClassCastException at runtime
Connecting to Cassandra on startup, and monitoring session health
How do I query an optional column with a secondary index using phantom?
How to clean up RootConnector in phantom-dsl?
Phantom Cassandra batch insert

Categories

HOME
batch-file
facebook-oauth
twitter-bootstrap-3
wakanda
ecmascript-6
3d
flex
themes
saml-2.0
xbee
3d-reconstruction
jquery-ui
azure-container-service
webix
elasticsearch-5
jquery-ui-sortable
categorical-data
reactive-programming
stellar.js
nancy
radgridview
favicon
magnetic-cards
docx
gruntfile
standards
symfony-console
sse
cfml
delphi-xe5
replication
squashfs
pimcore
php-mysqlidb
short-url
displaytag
comparator
jquery-multiselect
angularjs-components
carrierwave
winpe
eviews
weather
fstream
twos-complement
keras-layer
sendbird
browser-extension
docfx
sql-server-ce
git-rewrite-history
magento-1.9.3
bindingnavigator
flask-login
jide
vaadin-elements
remedy
amq
wpas
yii2-user
type-theory
google-photos
baidu
ampps
filenet
stripe-connect
atlas
hadoop-2.7.2
parfor
latin
myspace
rspec2
drawstring
x-tag
wso2developerstudio
scaffolding
tooleap
gogs
pre-build-event
swizzling
rasterize
linklabel
dllimport
roadkill-wiki
xvim
opserver
omnifaces
bufferedinputstream
dot.js
apache-spark-1.3
uncaught-typeerror
mruby
viewer
big-ip
post-commit-hook
gii
xml-dsig
renderer
rfc5322
android-usb
solace-mq
kaleidoscope
dolby-audio-api
http-status-code-410
fb.ui
preload
robotlegs
extreme-programming
cakephp-1.2
fusefabric
httponly
kqueue
creole
socketserver
cloudfiles
qglwidget
vs-android
request-headers
web-application-project
fdf
unmanagedresources
wcf-proxy
leader
great-circle

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App