Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [teneo] ClassCastException during read of one-to-one mapping
[teneo] ClassCastException during read of one-to-one mapping [message #58487] Sat, 21 October 2006 20:42 Go to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------060706050509050600010305
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

I'm having a problem reading back a previously successful stored
one-to-one association. During load, a ClassCastException is thrown. I
have attached two files, one with the model and the other one with a
snapshot of the debugger showing the line which when executed produces a
ClassCastException somewhere in the model code. That is, because the
eInverseAdd is invoked with the wrong object.

The debugger shows that target and value are the same object. The
eReference value is strange, because there is actually no corresponding
object for this association to be found in the DB.

The only objects that are in the DB are the parent of the Yahoo object
and the Yahoo object itself. The load of the parent and the Yahoo
objects have been passed successfully. Normally, the load should have
stopped already as there are no more objects to read - instead, it ends
up as shown on the debugger screen.

Any ideas?

Thanks
Andre

--------------060706050509050600010305
Content-Type: image/png;
name="model.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="model.PNG"

iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAAAXNSR0IArs4c 6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgA ABdwnLpRPAAA
NN9JREFUeF7t3V1u20jWBmB/a5ntzBKCzi56C0HgTQwwVwEa3kYDgS9mCw0E 2UMDDeTjj0jx
R5IpqY5U0nmMXLhl8rDqqaL8dpGi/+/Xr18vvggQIECAAAECBAoKNAHLFwEC BAgQIECAQEGB
l4K1lCJAgAABAgQIEGgvD1IgQIAAAQIECBAoKyBglfVUjQABAgQIECBgBcsc IECAAAECBAiU
FrCCVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsI WOmnAAACBAgQ
IECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE 0gsIWOmnAAAC
BAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAA AQIE0gsIWOmn
AAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUj QIAAAQIE0gsI
WOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFil RdUjQIAAAQIE
0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoL CFilRdUjQIAA
AQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAEC BEoLCFilRdUj
QIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECA AAECBEoLCFil
RdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoA IECAAAECBEoL
CFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICV fgoAIECAAAEC
BEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9 gICVfgoAIECA
AAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAg QCC9gICVfgoA
IECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIE CBAgQCC9gICV
fgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpU PQIECBAgQCC9
gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICA VVpUPQIECBAg
QCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECg tICAVVpUPQIE
CBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQ IECgtICAVVpU
PQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAAC BAgQIECgtICA
VVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmn AAACBAgQIECg
tICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsI WOmnAAACBAgQ
IECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE 0gsIWOmnAAAC
BAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAA AQIE0gsIWOmn
AAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUj QIAAAQIE0gsI
WOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFil RdUjQIAAAQIE
0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoL CFilRdUjQIAA
AQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAEC BEoLCFilRdUj
QIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECA AAECBEoLCFil
RdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoA IECAAAECBEoL
CFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9gICV fgoAIECAAAEC
BEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAgQCC9 gICVfgoAIECA
AAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIECBAg QCC9gICVfgoA
IECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpUPQIE CBAgQCC9gICV
fgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICAVVpU PQIECBAgQCC9
gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECgtICA VVpUPQIECBAg
QCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQIECg tICAVVpUPQIE
CBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAACBAgQ IECgtICAVVpU
PQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmnAAAC BAgQIECgtICA
VVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsIWOmn AAACBAgQIECg
tICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE0gsI WOmnAAACBAgQ
IECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAAAQIE 0gsIWOmnAAAC
BAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUjQIAA AQIE0gsIWOmn
AAACBAgQIECgtICAVVpUPQIECBAgQCC9gICVfgoAIECAAAECBEoLCFilRdUj QIAAAQIE0gsI
WOmnAIBIgZeX//hXj0DkUKtNgACBmYCAZUIQCBRossXf//zyrwaBZiwCR1pp AgQIzAUELDOC
QKCAgFVDtOrbIGAFTnSlCRBYCQhYJgWBQAEBS8AKnF5KEyBQsYCAVfHgaNrj CwhYAtbjz2I9
IEDgEgEB6xI1+xDYKCBgCVgbp4rNCBB4MgEB68kGVHfqEigRsH5+++3ztx/D nfI/3j799vbX
gRvn37+8vP559g31W/Yat9my8cE7+psd+69JR7Y29eKDLlviHqy6zg2tIfDs AgLWs4+w/t1V
oETA+vX399eXr+/dUtA8bM0yymVBZMteW7Y59UnJv/74/OmPn5cuZV179PG4 AtZdTwUHJ5BO
QMBKN+Q6fEuBMgFrzFWzpLVbFBqySxdEmg1eXsY00ySbfqPjr8xXp+a7//m1 2/nr67A2ts86
y8rdjpMDNUGw++9usa3deBcQhxy23L4LkfOmro5+7dMuBKxbznzHIkBAwDIH CAQKFApY/SLW
2+xaYb98tb9i2F2Ga3PMEIP2PxrWvdavjBu33xzZvY0+/cXHSeXp5chZ2W7L 5XXMPm8NVzBP
bd9sOa+wP7qAFThRlSZAoLiAgFWcVEECe4FiAatdxOoD0C5njGtI/SrRPv0M MWh6Ya7/fv3K
eq/xlcnGy3uwlpf8hsWnyV1WY1ybpKJ2s+4erPX2q1cOHV3AcmYRIPBIAgLW I42Wtj6cQLmA
9au5ZPbl++QSW5+rZitYs3WmmwasxRXAPgWOiWoSCtuLlfsLnZPuzCsIWA83 1TWYAIGFgIBl
ShAIFAgMWH0iOR6w2h/trspNLhEuXpldIpxfB2xi0JG1sUnlPiE161UHPx7Y rrrtQ+E/bUbs
7gZbb7965cDRrWAFTlSlCRAoLiBgFSd94oLvry+v70/cv4CuRQWs/pap9i7y 1y+7S4cHHqZw
9k3us0uNw43q7WHm2au/b316T3ob5vqv+UXALqLtblcf7nnf5cLp9n1SnL2y PrqAFTBBlSRA
IExAwAqjraTw+2u5TCRgnT2oBQPWpY85uDaXPM1xfYrw7OlrBwIErhAQsK7A e4hdZwHr59vn
z28/u3aP3zapqV952P2gS1Hdi8Mrv3abvL6OK1jN3uu93poXx30eAie+kQJW PflMwIqf745A
gMBeQMB69tkwX8EaY9Xum33iar7rl7q6NNV+O6xXzaJYt81srz5StXsJV+vJ JGAJWM/+FqN/
BAgcFhCwnnVmDAtTu/tadqFpyEZDRJptNUalMWm130xWvXaRa/LK+FNXD4+c YC//qSdhJG+J
FaxnfbPTLwJ1CghYdY5LuVYt78Hq0tH7cKnwQC4aX1rHKQHr7HGxglVPqhOw zp6+diBA4AoB
AesKvIfYdXWTe3/71OSOq8WVvWXAaq/+7TaZXDTcfZxwevmw3M30DwG7rZHN L3X/6hHYNmi2
IkCAQAEBAasAYtUl1p8ibBPWJFSN96vvXlwFrPYy4HihcZeiDt7kHvkEhy2X INctP3dkxium
F9xOdriFVrCsYJ07C21PgMBzCAhYzzGOT9eLS54usSWEnYKa3lt2PqiAVfvz IFwiPH9W24MA
gcsFBKzL7ewZKLAMWPPVqQ+eIrHPOsuVtuUzKZoeDJt0d6YtH6S63n71yvoZ FlMWK1hWsAJP
E6UJEKhYQMCqeHAyN+1UwProKRLTB0xME9OBZ1LMPiQ5hK3hZrL19ideaXPW gbvQBCwBK/N5
rO8EMgsIWJlHv8K+H3m6xJiZVt+snyIxPsFrecnvwDMpGoHxuV+DxvhIr/X2 q1cOHX2mGhyw
pn8eZ/KXaoY/rrwh3IwVTlzg27LNYvfhL/kc/huF48YXVL78QqRLhBWe8JpE 4IkFBKwnHtxH
7trpS4Rtz44+ReJUwDr2SccxVHVmu9i0vqtq9UolAav5y4DdH1G+IHxsiThb tpkdetWe4a9N
X9LCCzp1eBcB65HfEbSdwOMJCFiPN2YpWrw5YB14isSxS4STTVeG7Z1YY/oa Hkyxf0DFZHVr
/gHD9TMs5qU3rGANf9W4+7vIbUj6vvvjRfvMtHpl9+eTv75+6f4Mc/unl7++ DwFrmmbev7Rl
24T05Wv/x6Hf/uz/TvPucLMf9Q1Y/YnoMWCtmroLTMsENm/PomC78bemDUPD mvb/3bXwz66b
Y68XfbwoPs6SloCV4q1DJwlUI5AiYNXzGJ7rW1LNzAluyPaAdeApEsdvcl8+ k2J3hbD/W4xv
u2Az+aM/6+2Xrxx4hsWU5uOA9ePt0xitmqix/88mzbTh6dQrbSLptvmnjz79 922g2cWU76/d
N+0Fuy/f+xzTJ5gxhI0/aiu028wa8PnbjyH9zFry4arSrD2Tw03bMKncNazL iENWG5ux7+OH
B/1gAwEr+KRVngCB+S0iGTw+/iV31ysX2//X3G+Ih5uu+7k3rEJNVo/6QDBm i9nyVf8HuNt8
M92xe2VyAW6+dNRu2e2ySyfTFNVnr+la1Dw8DbFsenVv+H5+p9d+qeyjxDO2 Z5/npm1YBKxZ
C4/28YpT1enzcKePBhN4aIEsK1jbQ0zNW574DeGXR53n4dZwP2aR5ptFglm9 ciJ8DD/qotX3
cW1smpDGFa8LAtYYAft9P/43a89ul2koXDds94qAVed81ioCBLYLCFgf/5LY 8ovkNtscTFGL
y47bx96WNxDYGrC6a3zDVbxFfGkyx/yVJnJN7qDqLwv2/5r7lvqLg/19VMP9 TKcDVl98WO5q
Vr/2lx2XIaw7ytjUj8+doT3z28KGS5mTFbVVC4/38eJzzf+E3GDCOwQBAqOA gPXxL4mL39CL
77j4DXHiji5TvBKBjwPWeAVwvBOrjTjzZy4sXxluNm+3alekdveD729d764S 7mPZyYD12+uX
9v6t/haokze5r5t65Cb3dXsmgW/TClYfFoev3b1lV55QAlYlJ4VmEEgiIGA9 asDacr98kklc
czc/DlgbLrRdEiyagLX9ZqmgNhQpu/gQwBU1BayazxRtI/B8AgLW4wWsLdFq us3zzdoH6tG9
Alaz/NNdcHzcf+OjSot1RMB6oBNHUwk8gYCAdeI30PzpiEf/T/rsxzBe/Gvv 3Ghl+xoELh5u
O5YVELCe4DeWLhB4IAEB6+T/4u8/wHXiUdQ3DVj93NqeGx5oLj5lU++1glU2 mjxHNQHrKU8x
nSJQrYCAdfoaypCrZklrd+vt7CNa84dQr56FvX469iXXbrbf5O53SSWnnIBV TzhzUlRyUmgG
gSQCAtZHQaeNVm/tU4UWD/7ZXzE8/hDq6Uffd58Ru+qPsm15TIPfIlWdugKW gFXVhNQYAgRu
JiBgfRSw+j9CMvlA1rg6tXoW0foZibuHbh96OvaHxz2wwekHjYpWNzttth9I wBKwts8WWxIg
8EwCAtbHQWf2gazx+YezFaxjf+XjdgHrmSblM/VFwBKwnmk+6wsBAtsFBKzz A1a/mnU8YHXP
eJz/QZIDT8f++Ljr30zWqLbP7Eq23P5xBFveQKCSWaEZBAhkEBCwPg4680cK DY/n6Z9/3Yat
9WOyD9zSvr7t/YL/sxewos7J//67/+TCv/976gj/+/1fL//6/X/nNMIK1gXz PGgXp885M9e2
BAhcKyBgfRywgt7uLyjrN8S18/3w/k286pPV+M2B7XYZTMB62IeXOn1iTh9V CRA4LCBgCVjp
z41JrDqVsBqnZglLwBKw0p8xAAgQ2CIgYAlYW+bJM28zTU0C1gULq4+yixWs Zz6N9Y1AfQIC
loBV36y8bYsErEdJSFe2U8C67YnlaASyCwhYAlb2c2B655UVrCtDTM27C1jp T3UABG4qkCVg
3eAT4Lc5xE1nR5aDbbrJvcVwD9bD3oDVJD8BK8sJrZ8E6hDIErBq/h/r7W3z GyLqrFk8pmF8
HsPkwQzDJs3DHM640d1jGrZP7+gtnT5Rp4+6BAgcEhCwXCJ0ZgQKCFjRsWl7 fQErcKIrTYDA
SkDAErCcFoECAtb2ABS9pYAVONGVJkBAwIp+Ew+t7zfEw53CAlboGXFWcafP w50+GkzgoQWs
YFnBeugJXHvjbxWwxr/X1Mznn9++vn75+vbXI9+QflZy2rixgFX72aJ9BJ5L QMASsJ5rRlfW
mwMB6/vrl+/FZ90+YO3+dOb31+4PZRY/0AMXFLAqOzk0h8CTC2QJWLd5hsIN jvLk8/HpundO
wPr5rfnz4c3Xb8PiUxOSuq9Pf/zcRaXVK02car+aJauX1z+bOPXj7dNu96ba 528/HjgPFU+H
AtbTnV46RKBqgSwBq/ib9V0K+g1R9cl0qHFnBKx9NupS0SwqrcPT/JU2eHWv TBau/vrj8z6Z
WcryHKyHO3k0mMCDCwhYj/S/+ALWw51uk4DVXMVbfHWRaP+v22C8rjcsVnX7 dGtRq1cmEWp3
iXAaqgSsxf8FOX0e7vTRYAIPLSBgCVgPPYFrb/wZK1h90mpT1BCnFjdRrW6r WgcsK1gnlpYF
rNrPFu0j8FwCApaA9VwzurLenB2wms8A/vbS3QXfLEotbqJavdJErt0dV8NN 7u7BOn4xVMCq
7OTQHAJPLiBgCVhPPsXv270zAtZ4BXC8yb1JS7uLikPSWr4y3Bffbra74OhT hMcWsQSs+54L
jk4gm4CAJWBlm/M37e+tnoM1ncaeg3X4pBawbjr1HYxAegEBS8BKfxJEAtwj YD3SlL7lp3EF
rMiZrjYBAkuBLAHrBk+ous0hTOHHEhCwbhmhTh9LwHqsc0drCTy6QIqA9XCD 5DfBww3ZsQYL
WALW00xmHSFA4CwBAessrltsPK6E3eJgjhEsIGAJWMFTTHkCBCoVELCqGxgB q7ohuaJBt7lw
7CgbBa4YSbsSIEDgPAEB6zyv6K0XvyeiD6c+AQIECBAgECEgYEWoXl5TwLrc zp4ECBAgQKAa
AQGrmqH49evgZY6K2qcpBAgQIECAwDYBAWub0022ErBuwuwgBAgQIEAgXEDA CifeeIATd+lu
rGAzAgQIECBAoBIBAauSgTh8fbBPXbU0UTsIECBAgACBbQIC1jan4K0+/JB5 8PGVJ0CAAAEC
BEoKCFglNa+p5RLhNXr2JUCAAAECVQkIWLUMh4BVy0hoBwECBAgQuFpAwLqa sFwBnyIsZ6kS
AQIECBC4p4CAdU/9xbEFrIoGQ1MIECBAgMAVAgLWFXgBu3qSewCqkgQIECBA 4NYCAtatxU8f
T8Cqazy0hgABAgQIXCQgYF3EFrnTmLEiD6I2AQIECBAgECggYAXiXlb65gHr /fXl9f2yttqL
AAECBAgQOCQgYNU4Lz5+evv7a7lMJGDVOAe0iQABAgQeWkDAqnH4zgxYP98+ f3772XVk/LZJ
Td1X94MuQnWvDNu12+42eX0dV7CavSd79Zu8vjUvTnerEUybCBAgQIBAXQIC Vl3j0bfmzIC1
j1W7fLVPXM13zVJXF6XaJa/JYtUsinXLYbO9+kjV7ihc1ThFtIkAAQIE6hYQ sGocn+MBa1iY
6hea2q9pNhoi0myrJiCNuWofsCarXrsXJ6+MWcvVwxqnhzYRIECAQP0CAlaN Y3TuCtZu9el9
uFS4zEUCVo2jrE0ECBAg8MQCAlaNg3t+wGrXnCa3WDWJanG3VX9P/CR57TcZ XmxL9JtNLx+W
u5m+RmltIkCAAAECIQICVgjrlUUvCFhdwpqEqvF+9fbFAytYXYqaX2ecvDQU conwypG0OwEC
BAgkFRCwahz4jwNWja3WJgIECBAgQGAnIGDVOBUErBpHRZsIECBAgMBmAQFr M9UNNxSwbojt
UAQIECBAoLyAgFXe9PqKAtb1hioQIECAAIE7CghYd8Q/emgBq8ZR0SYCBAgQ ILBZQMDaTHXD
DQWsG2I7FAECBAgQKC8gYJU3vb6igHW9oQoECBAgQOCOAgLWHfFdIqwRX5sI ECBAgMD1AgLW
9YblK1jBKm+qIgECBAgQuKGAgHVD7M2HErA2U9mQAAECBAjUKCBgVTkqL/+p sVnaRIAAAQIE
CGwTELC2Od12KytYt/V2NAIECBAgUFhAwCoMWqScgFWEURECBAgQIHAvAQHr XvKnjitg1Tgq
2kSAAAECBDYLCFibqW64oYB1Q2yHIkCAAAEC5QUErPKm11cUsK43VIEAAQIE CNxRQMC6I/7R
QwtYNY6KNhEgQIAAgc0CAtZmqhtuKGDdENuhCBAgQIBAeQEBq7zp9RUFrOsN VSBAgAABAncU
ELDuiO8SYY342kSAAAECBK4XELCuNyxfwQpWeVMVCRAgQIDADQUErBtibz6U gLWZyoYECBAg
QKBGAQGrylHxtwhrHBZtIkCAAAECWwUErK1St9zOCtYttR2LAAECBAgUFxCw ipMWKChgFUBU
ggABAgQI3E9AwLqf/fEjC1g1joo2ESBAgACBzQIC1maqG24oYN0Q26EIECBA gEB5AQGrvOn1
FQWs6w1VIFBKoDkf/SMQIVBqiqpTp4CAVeO4CFg1joo2ZRVozse///nlH4Gy At7nn/4dRcCq
cYideDWOijZlFRCwygYL1XoB7/NP/44iYNU4xE68GkdFm7IKCFgiUYSA9/mn f0cRsGocYide
jaOiTVkFBKyIeKGm9/mnf0cRsGocYidejaOiTVkFBCxhKELA+/zTv6MIWDUO sROvxlHRpqwC
AlZEvFDT+/zTv6MIWDUOsROvxlHRpqwC1wWsn99++/ztx/AhxB9vn357++vw ZxLfv7y8/nn2
xxW37DVus2Xjg5+XbHrxsvv6+v442ajpb/81GYKzhaM+QOp9/unfUQSsGofY iVfjqGhTVoHr
Atavv7+/vuxCyTxsLX/TX5Z+tuy1ZZsTMaJNV5/++LnLVd9f999XEVaOqv71 x+fKmjpD9j7/
9O8oAlaNQ+zEq3FUtCmrwLUB658hAeyTVvOLdr8mNISALgY127zs0kyTD/rl lzElrF/5+58+
PC337cPQn1+7/b++Dmtju6R1oE533OFYQ9v6xbbmR4dW3Y415kt/0N/e/uzb v9u3PfT4o34N
b17hUBdmrerTyQml990y29Datv58ve3AEceawzffmr2mFUaWA425anHL+/zT v6MIWDUOsROv
xlHRpocQ+O+/+6Dw7/+eau7/fv/Xy79+/9+2Hl0dsPpFrLfZtcJx7Wd/0bC7 ntUGgi5D7F8f
8tn6lX04mO/bFx+3b5NBf/FxqLy4FjmrPD30LgYdWAc62piXL9/7A/W5cFxe al/pftSmt/ab
ZYVVFxat2omte7r2GXNPnxSHC68Hjjhh2flM1uqa7Q/ve8GV3ANRzPv8tvPv gbcSsGocPCde
jaOiTQ8g0MSrPlmN3xxo9C6D3TJg9etVR1ZTpms8Ywxq1lGmC1fN99MLXpPv JytYs8WYdn1o
tjY2WaFZBqZhbWa4XWkMMUcD1snGDEmuPeI0YO1ySb/vqsLbYpmtTaX7r/Em qvX9ZLMMt0Bu
g2Zbp9394yPulgN3YWh2hfFwY6xgPcCbwh2bKGDdEf/ooQWsGkdFm+oXmMSq Uwmr6UizhHXT
gNVerevWb4Z/43W32QrWfkHl1gFrfev6kEsOXiK8UcA6cEP9iYDV2Y7Nntwf tjXSnQ5Ype/u
9z5f/zvKlS0UsK4EDNndiRfCquizC0xT0wMErP4X9pGA1V4i3F2fmlwCW7wy u0S4uNo1vXdq
HkqmV772193Wn7MbruV1y2/7Ra8fb1+aa3/r5q1uZupW46bLS/0hjnVnnZya V9at+ihgjZcg
JwGrSbdt+5dtHkotLqFOr97ur6UebIwVrGd/T7mufwLWdX4xewtYMa6qPrnA IwWs7i6l7h7w
1y+7q4fL6HD2Te7zS4TT++hn92At7y4fbtjaXY/7/O2P4drc/t72yWMaDt4A vg9qi5w3C1if
+mc9DEtBH91y3qXPsVW7R12sA9buZvlPv+0+EzDeor67x39/o/3itvrhP1cf AhgXGmctPNAY
AevJ31Ku7J6AdSVgyO4CVgirok8vUPElwsd5dtRVoeF4N698VERQq+5Z1vv8 078hCVg1DrET
r8ZR0aYHENh0k3vbj5vfgyVgXfQY1XsGoOgh8z7/AO8o1zVRwLrOL2ZvJ16M q6oJBBaPaRif
xzB5MMOwSXPpaNON7gUe01DFAzmfOaxEh6GI+t7nn/79SMCqcYideDWOijZl FRCwIuKFmt7n
n/4dRcCqcYideDWOijZlFRCwhKEIAe/zT/+OImDVOMROvBpHRZuyCjTno38E IgSynlJZ+i1g
1TjSAlaNo6JNWQWsYEWs36jpff7p31EErBqH2IlX46hoU1YBAUsYihDwPv/0 7ygCVo1DHLEW
rSYBAhcLRPx+VTO5gIBV42/fom0SsIpyKkaAwNMJWMFKnoSCui9gPd1bxbJD AtbTD7EOEiBw
lYCAFZQwkpcVsK46LR9hZwHrEUZJGwkQuJ+AgJU8CQV1X8C63zl9oyMLWDeC dhgCBB5U4OI7
t+xI4LTAg54Rmr1RQMDaCGUzAgSSCljBClrCSV7WCtbTv6EIWE8/xDpIgMBV AgJW8iQU1H0B
66rT8hF2FrAeYZS08W4C768vr+8fHH3cZsvGx2r9fPvc/O3h7uvDA95NY3Hg pr/91+e3n7W0
KaIdAlZQwkheVsCKOFurqilgVTUcGnNvgffX8+PNNbmq72+brvYh5f21psDS tO1wc47+4N5j
WPz4AlbyJBTUfQGr+KlaW0EBq7YR0Z67CiwD1nx1qluyGePGbgHn9XVY5don rXE9arfxsNYz
7Dv8vP/v5qeHMsyySLtde7B+zei9X/LaH2D/o3456eDu7/MutCVna1BdFybb zIvMmt3+xzyN
Hj5i25YZ49sQJz9SuutMmBxcwApKGMnLCli1nOFh7RCwwmgVfkSBUwGrv3g3 ZIVxAaeNI33Q
mPxoGj32Sz3Nd92W88Wfw0tBs73GINbXbQ/ZvbRuxBB7jux+uAttnbEL825O 27psaB+QhpB1
+IhzmX3L+wA4CWhrpWrmj4CVPAkFdV/AquYUj2qIgBUlq+5DCYy3Ew03Qi0y 03wNpgk5k7Cx
vAdrmUNmtfdR6UAymZBNiwzfr2/2mgasXVjpX9q0++GGLSLRtFK3w+Ia6hD2 Nh1xz7gImX1o
HL9qukb665eAFZQwkpcVsB7qd8QljRWwLlGzz9MKnL5EOFmmOi9gHbyxa1yH OnSJcFteuTpg
LRt2IsMNYz42e3jhjEh3OmCdf/vbbeahhzkRCBK4zQR2lHsJCFj3knfcKgU2 B6zJjVOrULK8
O+nIPVb7i2TtDvtFm59vr83lv32RdYoajzj9UV9geGXT7uuGbQhYy2t7g8SJ I66vovYtna2G
HVOqcp5oFAECBD4SELA+EvLzVALbA9b+JvLxstnxm9z7u5XGm9LHy2HTVDU+ pmF5J/yYvU5f
Ivz8ua8wuSfqwA3sk0W49ttFw1ZXQsdN2kbNm72/pne0wUP5Q58DmB58V2DZ mFQzT2cJEHg2
AQHr2UZUf1IK7LNdyu7rNAECBKoTELCqGxINInC+gIB1vpk9CBAgECkgYEXq qk2AAAECBAik
FBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkg YEXqqk2AAAEC
BAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAg ECkgYEXqqk2A
AAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIE CBAgECkgYEXq
qk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0 AQIECBAgECkg
YEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvl sOs0AQIECBAg
ECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoB ASvlsOs0AQIE
CBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECA QEoBASvlsOs0
AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQ IECAQEoBASvl
sOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7a BAgQIECAQEoB
ASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJW pK7aBAgQIECA
QEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKR AgJWpK7aBAgQ
IECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAA AQKRAgJWpK7a
BAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMg QIAAAQKRAgJW
pK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67 ThMgQIAAAQKR
AgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCw Ug67ThMgQIAA
AQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAik FBCwUg67ThMg
QIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAEC BAikFBCwUg67
ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2A AAECBAikFBCw
Ug67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXq qk2AAAECBAik
FBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkg YEXqqk2AAAEC
BAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAg ECkgYEXqqk2A
AAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIE CBAgECkgYEXq
qk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0 AQIECBAgECkg
YEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvl sOs0AQIECBAg
ECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoB ASvlsOs0AQIE
CBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECA QEoBASvlsOs0
AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQ IECAQEoBASvl
sOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7a BAgQIECAQEoB
ASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJW pK7aBAgQIECA
QEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKR AgJWpK7aBAgQ
IECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAA AQKRAgJWpK7a
BAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMg QIAAAQKRAgJW
pK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67 ThMgQIAAAQKR
AgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCw Ug67ThMgQIAA
AQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAik FBCwUg67ThMg
QIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAEC BAikFBCwUg67
ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2A AAECBAikFBCw
Ug67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXq qk2AAAECBAik
FBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkg YEXqqk2AAAEC
BAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAg ECkgYEXqqk2A
AAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIE CBAgECkgYEXq
qk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0 AQIECBAgECkg
YEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvl sOs0AQIECBAg
ECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoB ASvlsOs0AQIE
CBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECA QEoBASvlsOs0
AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQ IECAQEoBASvl
sOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7a BAgQIECAQEoB
ASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJW pK7aBAgQIECA
QEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKR AgJWpK7aBAgQ
IECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAA AQKRAgJWpK7a
BAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMg QIAAAQKRAgJW
pK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67 ThMgQIAAAQKR
AgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCw Ug67ThMgQIAA
AQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAik FBCwUg67ThMg
QIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAEC BAikFBCwUg67
ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2A AAECBAikFBCw
Ug67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXq qk2AAAECBAik
FBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkg YEXqqk2AAAEC
BAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAg ECkgYEXqqk2A
AAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIE CBAgECkgYEXq
qk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0 AQIECBAgECkg
YEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoBASvl sOs0AQIECBAg
ECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECAQEoB ASvlsOs0AQIE
CBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQIECA QEoBASvlsOs0
AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7aBAgQ IECAQEoBASvl
sOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJWpK7a BAgQIECAQEoB
ASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKRAgJW pK7aBAgQIECA
QEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAAAQKR AgJWpK7aBAgQ
IECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMgQIAA AQKRAgJWpK7a
BAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67ThMg QIAAAQKRAgJW
pK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCwUg67 ThMgQIAAAQKR
AgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAikFBCw Ug67ThMgQIAA
AQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECkgYEXqqk2AAAECBAik FBCwUg67ThMg
QIAAAQKRAgJWpK7aBAgQIECAQEoBASvlsOs0AQIECBAgECnw/86s/pJrAsnR AAAAAElFTkSu
QmCC
--------------060706050509050600010305
Content-Type: image/png;
name="debugger.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="debugger.PNG"

iVBORw0KGgoAAAANSUhEUgAABkAAAAScCAIAAABcDdSNAAAAAXNSR0IArs4c 6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgA ABdwnLpRPAAA
/45JREFUeF7s/XnYHcV55w8/7/W+v98/73X9xjOTTDJ5x2NPloknjpNJZjLj JZ6JkzjBntg4
wUHGJpY3jINjcIwxqwHLEJZHMjsIsRttLHqEQKAN7YAEetCKQAgQAgkhiU0s AqH1vburu+qu
qrv37nP6nPPtq6/n6dOnuuquT1VXV337rjr/rzvvvHMIGwiAAAiAAAiAAAiA AAiAAAiAAAiA
AAiAAAi0lsD72EAABEAABEAABEAABEAABEAABEAABEAABECgxQSG3sAGAiAA AiAAAiAAAiAA
AiAAAiAAAiAAAiAAAi0mMLQTGwiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAwKAS 2LL1uXUb1i5/
eNnCxQ8uWbaYDlavfXzri8/n4dGxa4d22Nu2J7c+v+ipjTPXrJi2+tqfPfjz s+edf/qcyy95
cObIqic3PucExkcQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAIHeJbBu3YY77rjr lFP++QtfOPrj
H//kn/7p//qbv/niD3/4o+nT76Sv0vPVyWstAWvro5tfWvn8ttEXH7r/qUlX P3r+WQvO+vED
p558z0kn3vXNb0weN27W8uUZpvdugcFyEAABEAABEAABEAABEAABEAABEAAB EBgoAmvWrr94
/GV/+pm//vZJP5x8130PP7aW9ul33XPC937wqT/7q4suvezxdeuTgHT4WiNg bV337PPzN+5c
v/2Fza8ufvC5X96y+sxQvfr+iXd+6xuTvzLmpqO/eM1pp01bt27zQJUlMgsC IAACIAACIAAC
IAACIAACIAACIAAC/Udg06ZNl11+5f/45Kcn3zHz5dffeeWt/a/seXfna2/v eXvf7tfemnb3
vf/zk/97whVXP/XU037eO3/t0PZ42zRrzTMz125Y8uyKh16YM3vT9des+JFS r8ZOPm7MjaRe
ffavfvGnn/6Xa66doy/BAQiAAAiAAAiAQA4CD5zNf434729YnXgNhTz7gRwx VghiGRMmxs+k
Gbf6hr9X+WjaRDt3ec2rwCTnpU7pVCksfW2JSEpckjODOphfSfwYqmQh7Qaw 61jSvcMgBPUy
rd4WzTzCgwAIgAAIgMCAEHhp+4v33XffJz/16bN+Om7z8y+teXLL2qeeX/PE 5g2btqx78lna
Nz67/ezz/+V//umf3f/A/G3btnEsXbl2iIxQ25N3rlp3w8Ozp6yZefcTN9/w 2Hlnz6GZg6F6
ddPRR5N6NYHUqz/+7+cd//Wr9SU4AAEQAAEQAAEQyEHgfpKl7o/D0QeSgPRH +3IrZI6YSwTx
kzBnHicpIMm0balfljAk7yU5zcsbXWo4Suvvb3g8KYiDrkph6WurRFJLlsVI 8liVJ0xBCxn+
+89WFTHp3mk5wIIZR3AQAAEQAAEQ6AaBzZufPevsn5KP1Tk/u+ieOYtnzV9+ 77zlsxcsv3/e
snvnLb1v/jI6c/q5//LfP/G/z/npzygwt7Er1w69GG9P3jE6f+UO2ueu2HH/ wy/dt3z7zCUv
3r3ohekLnp8yd8sv799y873PTrpn8y9ue1xfggMQAAEQAAEQAIEcBO4/a+is +0240UnHxJ/p
m3A7ZtJo+H0QchJ97Z6Mv2eXBmGjYJPs+NMtcoyJEo3Moy/jpFj8gW1Bytws 13L6/phJ9weB
ogiErEUBTHateNOY2OZ5abnGJZEMAVtsrajiL4fCQtAgwswHnxx0+qO5juVB yqxQZCzOTKRR
wSalG1kZhTI2x+5/vA5m1Fq/kvAaoHLJzVBRi7WX1RxtgJvT2JrgvGNl0r2j zttZznErIggI
gAAIgAAIgIAm8MTGp7/8la/91ReO+db3f3zBLyZeccOUm6bcc9PUGbdMHblh 8owrJ00Zd9nE
b37/tKOOHvO3Xz5u06bNHF1Xrh3aGm8b7xh95BcLz/8JrXs1i2YOfnPs7V85 Nlj36rOf/cWn
Pv0vf/Tfz/vI75/+od/+59/9/R/rS3AAAiAAAiAAAiCQg8B9Zw6deR8L99jE Y46Z+NjW6B99
oY8o5FDwVbDRsTrUB2HAKCpzMjhnx59qUpBEtEVGafNM7JJt2d9q05OyFgUw GQ+MkdA4TFSQ
wICQSJjjGFMyH4+kADw5KlZo8SFDZxOMgetrwpDKQiuzkdGsyOJLsm3TpepW p5BAiEiwOeWq
lGoiVhKnkvHMqgJKqr1WCUt1w1iiEjZly7MUhoo5BalPnHiMHXWOexFBQAAE QAAEQAAEYgLr
n3z6L476m69883v/fPaF5w1fd+nVt15z0503ThmZeMsdV980dcI1t5590VU/ PvfSY//hxKP+
z989sWETJ9eVa4eei7cN01bl9MDSl+AABEAABEAABEAgB4F7zhg64x4Wjj7/ 3XUrn6N/bAtD
WCHjD1HwIIKV1/2dikoMqJMIguktSMpO3DImjCvazBeCbTptfkVwYXgVfcsS krMWB+C58K0T
mDj2eWmxDDFoVm6CD3KmuAUMtc6RSc0pR/OR8VaJ5i8yZq+bcTubpgjT09UG RNn3bIsjKlRJ
OJgoAm2GfxAh0KYMhfXdXOfm1L6HlGHRFQn3ji5Lp/7kuBsRBARAAARAAARA QBHY9Ozzf/m5
o088+YzzL7368klTb5x6z5QZc2ku4X1zlkydMeeG20euvHEqffWdH/zkz//6 C09v3sK5deXa
oWfibd3I6KobH5541n3fIt+r8DcHP/vZCZHv1UdP//Bv//DXP/j9D/y7E84b N0VfggMQAAEQ
AAEQAIEcBGaePnT6TBPukWu+FH52TgcBrFPxB/r/pWseCa+PL5UD5jBFSjVK J4g7TkeyTact
Wk7f6ouTsiblgl3kAVD58TGlpcWgGebRSQG4HVWQljFIfcdCONf75aMD5C8y 0V6Vccc2Xbop
6UbXmCuNIULmk+uLF9gC45QLz7XHPEojqDwR2lyG6MqYcO/EtYK+tu6tXLcA AoEACIAACIAA
CAQEtm3f+eXj/uF7p5x+2fW/vGHKzJlzls1d/Ogjj2145NG1CxavvGfOUppR OP7qW0469Zy/
/+o3XnhxO6fWlWuHno63jSs3jE59bM5li0777hR/5uCvffCkf/3vvvu5L1yw ZOlj+hIcgAAI
gAAIgAAI5CAw4ydDP5kRh3voatKJrn6IPpojHQeFjIOab+mkuuDp4Gv1ffBt HCe7qKgxYXhj
nolJsI0lKX8bGRlEKWctDmBi8kyXLzT0QoMpEEsrsD81Zh1nptlCzDFwGxTn ZnJj5cszSS6y
GH62bbySBECkdBWbn/wk5iOHya4lVo2NM8sqsUVDBxZrr2u2VDeiMGRtXNLa 8IR7x1RaAVx2
/hACBEAABEAABEDg6ad3vvzqzy+69B++ccJNv5w+4965ix5+fHTDM+s2baWf I1y1fjN9vHPW
PPrq+LHfufBfLt256xXOrCvXDm1i25oFa1ZOfeyeK5acftLUv/iLS//ov5+r 1r36tcD36ruf
++IF0+9YwMPjGARAAARAAARAIAeBu0/jcwVPu9tcsvwqckxRW3iaQp52Whza BIyDnXYVhY9O
m0uDK3ik6RZZxnzpquUq0dim8Fv1ybUt+OybFAenb8PI9CZkLQ7AY2LBoq8l JgyZsiwpLX0+
g2SS2VHicT7tlDioqLBCw2KkXzrtNCrO4Fo6I2RWKjIWpwCcZTP4Vn3Ul/jp xsVmrhPDZNZZ
v5JY9cGuNtwer/b65StULaHSxDlIuncSKm1mzhAABEAABEAABEAgJrBnz1ur Rtd+7vNH33Dr
5AVLHhld+/STm7c9tWXHpudffuqZ7avXPzNv0UM33Trlc1/40ujja157fQ8n 15Vrh560t7UP
r3v47sfm37Ji+pWLPv8Xl/zeR3/yW//5h3/xV+POOe+XCxetcALjIwiAAAiA AAiAQPcJ3PXj
oaOvXNp9O1plAUH58V1VLVp65dHtI0tG1ZC1qmik62th3oRhiBMEQAAEQAAE QEAm8OZb70y/
Ywb9yOD8hcue3rL92Rdefn777hd2vLr5+Zdon794+THHfm3y9Dve2POWf33n rx3agA0EQAAE
QAAEQKD3CCy+/IvaretHd/Se/U1bfMePhipjqSOOOvMZl/kXL19cZ7S1xdU2 XrVlDBGBAAiA
AAiAQB8TeOvtvaRhHfPlr1x17Q1LH3p07YZNa9Y/tfThlVdPvOHoY46dOu2u t/e+k5T9Dl87
tA4bCIAACIAACIAACIAACIAACIAACIAACIDAQBLY++6+NWvXXzp82be+feI3 v/Wdb3zz29/+
zncvuXT82nUb3n3v/XQknbx2aA02EAABEAABEAABEAABEAABEAABEAABEACB QSWwP9gO0v7e
vv37Dxx67/19Bw8fev/A/jw8Onbt0Cg2EAABEAABEAABEAABEAABEAABEAAB EAABEGgxgaHH
sIEACIAACIAACIAACIAACIAACIAACIAACIBAiwkMTcAGAiAAAiAAAiAAAiAA AiAAAiAAAiAA
AiAAAi0mMLQXGwiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAi0mAAErBYXDkwD ARAAARAAARAA
ARAAARAAARAAARAAARDYuxcCFmoBCIAACIAACIAACIAACIAACIAACIAACIBA qwlAwGp18cA4
EAABEAABEAABEAABEAABEAABEAABEAABCFioAyAAAiAAAiAAAiAAAiAAAiAA AiAAAiAAAq0m
kCRgLb9wyGxfm/bc3r105sLlQV70QZWMWfGreNlWW1o6GS+JKsZXv5ZnP6Sb sD037WuqGLpt
f2AwM7RQHSgUuDpbE0MzpU+xphVZVgbyFn3CHZEVffnvyxlWND2q0TG9oHJr kssvDA7zV5X8
IYtaqMI78ack17Ql5ezHVSAAAiAAAiAAAiAAAiAAAiDQbwRSBKykUXotA7b0 SPxvS6kG7KLl
F3ZbArJqjslgMIpPNC31S6EqlqKUq0ordYPJDQ1KajXloqnSr2hezqLPVSoJ gcpZ2AHDLGVI
ibNR3S/cqBS+oCBQCFgFgSE4CIAACIAACIAACIAACIAACDRMIL+AJXlFxU4b xT1SpPGniW2a
4+1lnEMKyVDBZd4F2qnJkmO4V4i6JHQVWR4MsqPvzIVs1B26R1XKPlcbbJ62 pcxBRufJNsml
JOTUy1Te6hWU14UGJ68MsadeYBXzr4kRWm41chHzGALXl2jTDn/lIIul79ZY n2pmuYcFFlaM
MiXPXXuiok9JUVIM/ZsuvRoUKeLIFdLUSVY7jZpajUBcd6IqFZYyPxe7eUqQ hfoTVrqoxihc
phKyKlBU8EoWsIQqZFxTp8W2FG8T8pYTwoEACIAACIAACIAACIAACIDAYBLI M4XQmTkYD+3M
ONGWLXKB9IUDM1QOB6R+omWGhCoZe+6br1WJo/TQCnOlJ4dUzb6WyWI5TIhQ 9MCyxCNbn3PE
MFGVK6W6RAqDhuDLAZ4EkaRKhPMlWRHr6sLzxSw38mHhCuCWflqR6dSzyl0p bK5UkqvSh4Gs
hMJo/BTFKhoWtZAFr2YGSRRm5RgW16skAas6gVi2CyzVubLqtgc5qYlwcbG6 GPt4FdWvmI5q
6akyfyO1xqaUK4L8tQghQQAEQAAEQAAEQAAEQAAEQGDgCFTwwGIaVPFFmrwB pXWCj2P14LDE
mDwsTuWgoa62k2UD3QQPLL06lT8grZp9y80oUjbYumOxXGFcyFwPMGGMzE7J OS0hNapbgmsC
ZJqJ3fNLE8vOcrOxdRzmQGNUS6YDuEwK3qJO6XuxefbbiNIhiwJjhoGs3kQq kZciUyVdXdCv
dekWFqBlorbTzyn45k9J5VctesVlLH5/SsKZ2ESI9VydpLgvXK6TKeS7mbgG lnDX+xXe0inz
c0FIEAABEAABEAABEAABEAABEACBFALVBKyCg0JmRwcFrFjE8heJripgVc5+ IICkrSvFBBIz
ohesjsE2L2CFI/uvTYvnePpWxU5CTJVxRRhXEYsIcCGACVjlIevqFmP2Kh3z VdLfdUDAcrJU
UMByrq5TwIpmgdqOh7ULWKFq9bVo6beA+4WhlmXJPtUELCaLOQpZ7oeBU1fE Oqwig4CVGyoC
ggAIgAAIgAAIgAAIgAAIgEAFAhUELEt9KWqCpyVwZ5bAzcGZQljGdSj0wFCG 6dilgbEtY8RJ
Oykam6Ks1pR9E68QoYEiHXkmWUtQiTktg9Eepeslh2Kxw5sKGVpBmoSnzElF nJBDLpqU9LwT
St8jnJF6JE8466iJYPPXf19F82ta6hRCd3pgejUoYxiL0VIo2V3pW5g/IXvS ZOjTxGYseh6X
upASmwjZfZI0sujXUwO5LOWnPkXLEwQs4SblAhabDlxmFmcRhggLAiAAAiAA AiAAAiAAAiAA
AgNGoIKAFelC3lS4XATDYWu86QWF4rhouXBHwIonmhXzxwmGm2ozA1jpnJ7G dmGwCLOWZOxR
r7kweVn3XHmnQHx4zEbwLAlvCmFMLNCGmMgmMjSikpP7OgQsawUrySphUScz WU4qYlVCJl8R
BjcXRX/4ML30VWy+/R4it9ybFrD8VcntCuNWEh7eLBsVIC12s2TUSXZrVCSg siNKYFwMEgKY
rAe/KMDVafcuZzeVpZDlvUGdycb8o8vf8sAKfugg3Iqxz20WAoIACIAACIAA CIAACIAACIDA
wBJIErAGFggy3hECTMHoSHo9ngh3PurxrPSv+b5vXf/mFTkDARAAARAAARAA ARAAARAAgY4T
kAUs5h0VHdZrWNPxK2s7k0q9ZKrExvNbJR7/Wp+kOlMwFea70g4Plc7XkMIp xswKz4ErWDZi
EReMI1fwpLpUvDrlSq5coFIVHgJWOdi4CgRAAARAAARAAARAAARAAARyESiq QeSKFIFAAARA
AARAAARAAARAAARAAARAAARAAARAoC4CELDqIol4QAAEQAAEQAAEQAAEQAAE QAAEQAAEQAAE
GiEAAasRrIgUBEAABEAABEAABEAABEAABEAABEAABECgLgIQsOoiiXhAAARA AARAAARAAARA
AARAAARAAARAAAQaIQABqxGsiBQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQKAu AkN7sIEACIAA
CIAACIAACIAACIAACIAACIBAcQLvvPPOEWwg0BECELCK36C4AgRAAARAAARA AARAAARAAARA
AAQGnoBSr+jvwJMAgE4QgIDVCcpIAwRAAARAAARAAARAAARAAARAAAT6iQDU q34qzZ7ICwSs
nigmGAkCIAACIAACIAACIAACIAACIAACLSIAAatFhTEYpkDAGoxyRi5BAARA AARAAARAAARA
AARAAARAoD4CfS9gzZo16+STTz7uuOO+WmSj8N/4xjduv/32+kgjpogABCxU BRAAARAAARAA
ARAAARAAARAAARAAgWIE+lvAWrRo0Q9+8IMzzjjjnOIbXUXXUgzFgCJ0FoFI wBoagpKVhWrP
HlDKZtRkiF7k32ab22xbUj3qRZubvCcQNwiAAAiAAAiAAAiAAAh0jUB/C1gX XnjhBRdc8Itf
/OKKK664sshG4ekqupZi6FrZ9GnC0K36tGCRLRAYeALLli5VewdI6LTSDzpg CZIAARAAARAA
ARAAARAAgc4Q6ICAtWzaf3/wkn/74C9+bf6lvzrnZx+499T/L50pmrtykZAX FelQ11133URv
+/ixX/RP8jN0FV1LMeQ3ddFPP6D3/FcNWsiaBaz51/3nGgnmHBPmHKP6sdVo alJUVLM7kIpO
YuPWjd+dcfonLz76P5//GdrpgD7SySZseGD93B/P+Ke/vPxzX5jwD1+c+NWf zZywZOOyJhIq
HeeiOYvGj5txxven0l86Lh2Pe+GUT11+yhfvvfxb8yZ+9/mF59UV7RP3nK33 uuLsWDzp92Ce
G7l2UynR999/N9zf64CGRUkcPHhwwaLlaqdjf+uAGbVjRIQgAAIgAAIgAAIg AAIgkESgioCV
RzqYd+uHDzz6++9v+sLBfbcdeGP8u1u/umfNn74160N0Pn+hlI6EJg6SLxXJ Utd72x998fP6
3MePPcYPQFfRtRRDup2/+slI4SLp6gBlc+8N7770j28u/0P6mD+DAxVySOW2 lok5VAUPH3oj
T0XMiTgcggbbU08/fUja6LwKkGdkqEaYeluxfF5O5UtbW4IS1Wx9OdXsnBkv F4y0qv928VHn
j/5n2ictvXjy0osvnnP+dyd/V8lY5eJMuorkqs/f8LULV//ByJYfTVz8g2vn /+yfp574dxO/
PmPVjHoT4rEV4k+KFUlXk28eVTsd16NhTfnUrpljDuy5j/aHliwnDSs9vzlt XjThy0fYRh+b
w1ilPotW0X20aGFwNyXZ7Nx6VZSdnDzJkq4IWBNvmaJ2yuPzW1/kO53J00x1 oNxTklh4wb+j
vfM2FG2KO28hUgQBEAABEAABEAABEPAJlBawckoHi6/64IFVH3t/4186Atad //B/5y+O0pGQ
/EQTB30Ba9bIrI8d9Wn6q3SrP/riZ0UBi64VBaxf/esR2n/9ry4m9UrtlJf5 Z/3r1xf9wTub
j9618Peev+xf0cf8GRyokEOFcvuXP7nzr06/66gz7/6r06Yfc/59/3Ttkp/f sXrRhp2033/F
b91/5W+RgEV/aS8Ubcq497339r23b9+iJUv2SxudVwHyjAwpzP79B/S+5ZmN 69c8omSsWqz1
I9E1W31FNbuhhChakqiOumLMxXNOJ/WKlBD6e8WcU8L9dNrpqxo1rFXPPvyF 6469aPbJ8zdN
ff/wnps2fuNns79y5bwz/mX2yaRh0bfNZTN/zOR1dfYP79H7JefOnT173dE3 jv3YRZ+lv3ev
vz9/VCZkrF597ge37d9153vP30x+WGXisa95ds75B/fMpf39XbPeen76qxtu fGnlFVsXXcR9
sui4ekJNxKDUq8WLFqQLWAcOHLzvgQX096EVq5Y+tHLhkofnL1z2wLxFdLIh ZYfsee/dt9U+
Mm2S6AVWIxCKn3KXvtfb1PzJV37O7a+uPT047t9RA05/a8SSM6qwcc7VjOeM EMFAAARAAARA
AARAAAQ6QCBdwProsRM++pUrfu+4q3/v+Em/9/Vb/+obvzjn+mUPrH01v3Qw 8ycffvHGf/v2
xj95f88J7z7/hdce/p0Xp/7KS2f+33NP/pX8uSsdiSNg/dGxnyf3lI998bMf OerTH/vhObTT
eP8jn/2EVrK4jEWyV4qApY3XHlhzTvuV9178/sF9N7770nfIA4s+5szgP1y8 ivacgfsg2FCh
PHzvvhd+cP+Lp87b9pM52y5Z/vLta1+b98xbW/e8P3Lphw69s/bQ3nVH9q49 9M66Q++soTOF
YhYD06hm7953aQ+Eqn2BUKX2d0PRSglbKkCekWHokbGf9n373qc9OAg/5rm2 UF5SanahePIH
pkmCge/VjFMunnPK/PXzlSsPaVj0Ue8UoK65hN+Y9sN/uOkrP5r6dZozSAkd OPIuaVgn3H7U
KZO/8U+3j/3RPbXNqstPgIdceuFH11z/SXK5Ovaoa9R++kl33XHHSpKu7lg5 Xu10XFjDYurV
+6F6tXfjFTSXsJyR/Kqn7z/3yN7RzH3+1d+rnla9MWj1atOmJzMFrBRxp/Z7 kLJJcb7z9htq
nzH1+ipuX3mgaX185vQblEqu3K/4QV3ZJOlq15Y5+i+ZR+oVaU9VnKcWhOoV 7XSQJ7/1hlEC
FjSseqkiNhAAARAAARAAARBomkC6gPVfTnnoZ4teu2jpG5c9suf6VW9P3/ju o7uPhNLBmmB/
O9xTpYOZP/7wnpWfen/XDx0PrGICVtlIRA+swEnlh+e8/PYzK56ZqWQs2km6 +vAn/vgjn/mE
1rBSBCzyvfLLZdbJvx4KWDe9+9KJJGDRxzxlR9LVuTc+RvvgaFiRgJVzYo7x wPrx9GPG3ff9
a5aOu2P1ko27Ht60e8q436D9yM7bpo77jak/+408uDPD0Kjm7Xf2vv32OyRU vfXOXr3TSXVM
5+lb2vOMDCkMKV+Pja59eMUoOYCQ98fIrDl0Js+1ytSclFRgsWbTeVWzM/Ne KAB5Vx09acwp
k79OuxawlIalTqq9Liesz074m69e+eUvX3b0nLVzlFh2+Mi+kWd/8k+3H/dP k39ATliFjM8f
OA//u078oDLp1O9MPuFrt6j95muX/8U1f3/W3T886+5/PmtG+PfuH9KZ/Env YTMH9++6i9Sr
dzZe+cq9/0Dn0yPJY/OTs8458uayzL12ASuPbSm54+rV6tWr0gUs0nHI2Yr+ zl+0XNy1h1R1
nioGivC1V15S+12TJ2r5TOlK9DH/jZ+znlCEoXq1j/4qrdzZ60pRqVc/GJ6n NCylXlURsOad
/6uH9+84dGAH/aVjf89JIGcw3xvu3pFblYAFDSsnQwQDARAAARAAARAAgTYQ yOGBdflHj7v6
o1+7nntgKeng4Mu3Z0oHM0/7EBOwht/dely0BtbJ/zZ/9ktHkjSF8KMnn7Pi 2Zl/cNJvPvPK
6MYdyx55duT3Tzmbhv+BAvDFT5M7C8lYSQIWnzbIs3DX9/5D7IF1EglYd//j f8iTQdKtLp68
+pLJj9PB0l8M0Z7nqp4OUyyHiyb9n41vH3H2Z/cefuPAoTcPHLj5zH935Pnz 6e+OxT9MgkJj
Zr6ls6Nxzptvvb3nzbdIqHp9z5tqf+PNt/RfOk/f0p4+eFbjpTVr176z911/ p/M5B89FSzqz
ZtdCiSIh76qvTxqjdi5gKQ1LnT89XCGrlhT/+OzPffL0//U/fvLJGY/N0As3 0czBz1/8qWOv
/PZfXJdLGCpUE3KSX3reR/ftnEj7nk2X04pX5Ht17k/upv36KxeRy9VnLvkC 3+lMnmhn/GIs
7XdNGDv94uNp3SulXu194oo86lWe+CnM+rvPPPLKfe7+3gtH9B5+my5gNcEz 8/ZcMP8B8r0i
9SpzCqGWch6Yv0Rc4FydrEXiUbfznbdft3vnVrXTsdr5JOL0tB59dBnf8xQl Rbjvvb379gU7
aVjK01Mvg0XHdaXIBazVc085dHDHoYMvHzrwsppF6OyZls/56a8ceu/pQ+9u pr+H6SD4u/nQ
u8EZ+nj43WCfc26iD3PRiqedrbRi5R/UBSoz7wgAAiAAAiAAAiAAAiBQhUC6 gHXzzz6upYO7
bj2NywgkGhx47uf0Nz31WT/5j4GAtZM8sH55YM+l7279SgkBq3QkjoBFS1qr 9dpJqPq9H5z9
zO5R8sMiDWvV87Pnrr/p934QzCjM44Glpw3yvE/99ofee/GkcArhD95c/l+n fid7QpuaPDhx
5obrZz5BBwd3z6S972WsYgLW/IlfoGq3631rf3X/4bcOHHjn4L59+3cd2Tru 4P5nXlryo5SK
qAc8mbcKDWNef2MP7SRU0ZJV/h4IW2GAdAFLLfT++Oo1b7291/HAojN0Pv9K 8Jk2UwBVs+kg
pWZnxpOfkhKwjjo/2mkZdb4cOB0v23UGfUsCFv0uYS3l8rGz//IPz/uT3/vp H+u05m6Y9ycX
fPoPz/k4uV/lFLDIkkJ5zCRGAeaf95F9e1aq/f231pCG9Y/H33biV2+95tJF /+H0v/zr6/72
r6/70lHq77V/S2cy4yTp6rGVjz36yKMPLX140byFN/302Py+V5mR6wCrp592 5KXJ1r73mZfX
3jn36u/RTgdH9j5D32Z6YNXOMyULdMc9tHwpSVekYZF6lbmIO8k35IFFf2fO ns/Xw1r28KOL
lobrYc1dVJdXFNm2/YWn/P2OX15LOppSlPLMHdYCVp6ipET1jEV1QAtvvbfv fb5nynM5U9ST
B0m9omNqcmk/FO8H33/mEO3xx/R5hfef8yuH3nos3B8Nd3UQnDnIju8/O20S fqGKRxD2vvNm
5p5Tw8pTNAgDAiAAAiAAAiAAAiDQEIE8ApZSD0jAcmSE63/8bx+9O2ONlHtP /48TfvLnOfek
PJaORPTAooWtad2r3z3p7I0vLyP16sql5z3yzMgD66+f+uhFv/v9s/IIWKKd t439rbce/+L7
rx332oo/3Lf0t24dm7iquNKtaJ+2YPOlUx6bvuBpOqCPB3ZOP7hz+voZX9q/ dfyiS4eCfbiY
2tNQJak32ihLOScTzb7maBKwdr9/ZPf+I6+8f+SV8O+r+4+8ffD99w7t3X/o jSNbf354/5ZV
d45NtzJncjSGeeXV12nf/OzzpFX5O51XAdIFrL3vButkrRpd8+Zb7+x56x36 q/Y9b75Nf+l8
zoW0cpqt8p5es/OUYv7kPnz+Z/7b6Z9UuyNgkUOWOv/1SadQsFrKhVa5+tMJ R/3l5Z+7Z/Us
EsgeWD+XJhX+r8v+8uibj/3MlX9HP1CYJ3cqTP485gk8/8yP7Nt5j9rff2X+ /teWHXjj0WB/
+8nLl98QLN9+898H+y1/T8d0Jt1OpV7R/siyR5YsWDzv3rn33XHPVT/6UiHf qzwZXHn7qUee
v9ba39o486J/UEJkcPDWRtrfef3lTLB5ktORFArMk6bbbeuz6+bOuY8ELNrn PnAvyVjp96DW
cabNmF3FAyunzWTMi1ue4Pv0265RLlF6z5STKMukKGUypwBBVK/vUvsbr+2k XR2ThrX33feU
ZEYHNaZIiZJ0deCtuQfemhfvdKw+qoNon3fur6ZkYeaP/82h1+YdDHd1oD+q Y7WPnPZvamk6
FCs9tTPlIJNVzqLJU3wIAwIgAAIgAAIgAAIgUI5AuoA18dxPknqgdINpN52p BYTgINwpQHq6
Snva++6BzJ2CJUVVOpKkKYS/9b/++Le/dxbNHCTfqxXPjJw67SszV19xy4qf 0UlaL4hmESZN
Ifz3f/zt3/iTEz/48ZP+05/+8Hf+7LT/8pdnf+yoc//w/4xTlt98/O/oPQXL yeMfDPcFSx7f
rvcvn//QoXc30r5+zncPvHbv/Vf8Njm40V6uWNt81VAh42Zc+bdUBV/ff+S1 /cFftdPxOwf3
v3/orYOHXzmy9aIDB3csvOX4QtEmBaYxzM5dr+za/SrtdKB29ZHvdDJ98Kym Ga56fO1jo2tW
ja6lA/pLx3rPnIdYLjuZNbtctP5V5Fr1sfP/m9q5gEXH6uRnLj5qzOSvp3tg 5TeGZguSm9VR
E/9m7vo55Hv1yYs//T/Hf+pLN3/p/9z45T3nn7/pe99QOx3nj7OWkPeSgLX1 Vr3f9YPfSdnT
U1QzB2lf8dCKpYuWLrh/3uy77p1x+11X0KrtWeteFc3LQzefcmTzJWbfs3bZ DT94f8e1tD8/
/4z515ww56rvqb1ozE2EV+rVyzue2b7tqfvuHSHfK9qnT70tS0R+jzywSMS5 ddpI0x5YKtfK
TrVPveVqpaDpCX10nCmR5KenJi3SSls7tm1W+12Tr6OPtFOW9V5jimTbvaf/ 2wPbrjyw7aoD
2+nvldFfdSbYwzPbr5x1esYCATN+9G8O7ryDXtcc3EUvbcIDs9PHYKcw+Wmk hyQIL734dPpe
L6i6LEc8IAACIAACIAACIAACDoF0AevyMz8dqAcHAtHg55defduknzo7BUhH OvvMD5128v8h
9eqtve+T0EM7HdNf9VGfpAMKlhSVjiQpBqWO0bdOJEkClvrlwf904plz1994 //rrR1ZfccyE
P712+Zm/+d2z1CxC+rFCcQ2sX/3rkc9dueWrU546ddbuSx587crV78/Z9oYW sHLWrqN+vEDt
5Hh1+lWLR5Y8O3Pps0edtuDAi1fTvn76X+/ffM7sc4fuP3eI/uaMs4eCFcvS tF98margmweO
7Dlg/tLHvQf3Hzi85/DBrUdeuPT9A6/eecWxtSCgYcyOnbt3vLxb/b33/vl8 p5Mvvbwr+Grn
7vTBs/LSytxrHzWl12xCRDW7FlC0Ovtnrjj6qHDXAhYdqDNHTTqalnj/zBVj 6lrEnWymyEnD
+ofJ3/va5G9/+dbj/37y1/7q+mNI2Lr413/90Kuvqp2Oa8ld/kju+sFv7tt0 udpJutq3daK4
71x7MX2bHu32X37i8DsTjhx5dNrFxy984MEHZsy+Z8rdd9407bKTv5Dfnpwh l0z6pyMbf2r2
11ctvO77R96c4+/3XfbdnHE2FIyrV89uXrV+zYJ7Ru5U8wczBSyl40z65R3i AufqZI33IEVF
upVSr7iK1JCcRMADt6/nN6qd1tvSy+0p1Yw+1pg7Vb53/fBfH3jxF8H+QvhX Heg9PHPXP//r
zMpAYQ5uu/7A9usPbr+e4qSP0V86CPfMGAoFULWF73dNnaTVxtopFbINgUEA BEAABEAABEAA
BPITSBew/uXHf379tT+//toLaCcBi3QDvb91MDi+6MeJblPKhtlnfphEJdKn PvLZc+mv2un4
tX2H+d8sActEQhf6MeiocgpYH/viZ0mo+tAJZ374hDNp5iD5Xl2z7MxPnvPR D33njPQphMYD
61PkgfUTxwMrP3YV8lMnzfr0SbMmz9s0ee4mOjjw/KUHnr9k5hlDtBeNqofC R3nLOTHnlkvH
kID1zkF333/4vUOHXz2y7fLDh7a9e+gQBasFAY1ktu/Yue2ll+kvSVd85hGt h0Vn6Lza0wfP
Olj6QebAKSclnfeUml0LHx3Jxq0bP3bxZ0KV6jNKwKK/n7z4M7TTGRKwyP2K AlCwGtMluYrm
EtKcwc/f8DXywOK+V9oJq14/rEz+t5/4wX2bLqY9UK/CA38vpF4Fv6945MjN Pz121rSZd90y
fdqkyUUFrEybqUQevO6kI+tOM/trKx+89qQju+888sqd4d874r93zPrFCTWW YB7beHK+evXo
IyPLF9+VeeNQAJJvyAOL/l5z8xRx13JGegbz20wRklal1Ss9j6/QhL5CtLnP F623FfyCqr1n
giqUnAo89fsfOLD10mB//lI69veccd5x8r8+sHX8wa3j6SDnJTUG0+iaQFSj nYgKBEAABEAA
BEAABECAE0gXsM4+5a9IPdh7MNivuPISkhHoQIkJ6uTZJ2f8rBYJWN/75rdJ dfrNj3+d/qpd
Hesz6oCCJRWNjsS5lsdDx7Q7kchrYIU/Mqg2mjD4wW+d+cFvn/HBb59JB/p8 0hRCmuf40OtH
nD1l8mNmZfvv37zrmpEN18xYTwd3/3iI9sxLej1AsRxOvOirVAXfO3TkvYPB vu9QsL9/+OCh
I68feWni4SM79h9+n85QsFq40GDmhW07aH9x+w6Sq9Zu2KT2hYsX005n6LwK kC5gbdm6zd+f
f2G7c7LesRP9fKaG4NTsWuA4kZB31SevCOYJknRF+3+7+JOfvPiTn5lEZ8bQ SfqqRvcr0f4l
R318z+UXB15Xl1+sdnUcnO/UduPXfm3f2jMC9Wrt+eJeXL0iAYv2R6/60d9O u2FKUfUqf75p
gXa901pX868+6ci2a4+8cM2RbeEeHVx7z/jv5I+z3pCl1Ssyg65lUs67b7/j 7vXeeipF8SdH
+ckmEtVuRCRg+X5GtaeoijjQsLZcdOD5f6GDKoU+7Z8+QPPk6W+VSMpdq2pX Q3zKmYSrQAAE
QAAEQAAEQAAEMgmkC1j//I+fI/VAiQaXTLg8ODh45H2lIYRiAgVIT2LFtE9+ 9atf3fbuEdrJ
fYl2feycpGBJUelIkmLQUTmRJE0h1ELVb33mj8kVi//4YLoHFnl4kXqlktN7 yuTHTP6kW110
++qLb3+cDjID90eAoULZuGLc8U++fWT/oXA/fOTA4cOHDr5xZNdtR3bdcvjI 7oOH9x8Iz1Ow
QtEmBQ5GNS++pHaSq17YvlPto6sfp53O6G/TBaz75iy894EH6a+zOyebGz7p ml0LlqRISKIi
N6ujJgWK1XdnnEI7HdBHOtm0ekUmkVBFipX6q3Z9ptFc88gnHP0roXp1hrjn Ua8otl1PnkqK
VahbReoVzSW8/JQvNqde+XzmXfW9I0+dy/bzwuPzZg4nvlhoGjLdHWrdKzVz cMXyGXl8r5RV
dC393Cd5YNHfh1asWvrQyoVLwl8enLeITtIPKdR+66kUJ94yRe10rFe/Ugd0 polEuzUPLtCw
nvt5RQGLSko5cDVdl/z4ldjX+XSRIgiAAAiAAAiAAAiAQBUC6QLWP57wBRKw DgS6QbAGljqI
9kPBwfdOyF6e5Ytf+6Gj+IgfKVhKRspFkilgfeSoYL12cRPXwCIPLxKwtCuZ OkjxHctTNCRd
DY56RUCGFJScE3OuveQE2m+48qQVD9/5ztYrj+y6keY37Xpp1dI7/5nOX3Tu N/Seh3VmGBrS
aCcpkqto2qDap981U00h1N+mC1j3zJ7/0IrHH1oZ7uqA/toHFCZzBJWTkp8v qtmZma0lAE0S
JK3qP1/8GVqvPdhD6aremYNJdpJctfIrR6m/atdnaslazlp64zc/lLLnsWT3 1slq5qDyvSL1
av/mn5ZWr0rXmTlXfM/f89ifP0ymbaIPET+ZMy26RP/0p3iQeevphDJtViFV igsWLVd7xUTz
Z7NbAhZZ2C3tKSccBAMBEAABEAABEAABEOg/AukC1re+eXTmnsnks1/6bs49 JaqcMVAwHkm6
gEUzrpKkK1Kvrrvuussuu+yss87iEZKOJu6ZEBDAjAfbzCJz/JxzLJ0znoZQ 8LmEDSXRimjP
P58UK3/v/G8RtoIGjGAE8tyA9QLLk2J+1Sy/bTrd/JcgJAiAAAiAAAiAAAiA AAj0KIF0AatH
M6XNzvTAShGwrr32WhKwzjjjjF6H0Db7h9pmEOwBARAAARAAARAAARAAARAA ARAAARBoOYH+
FrAuv/zyK664gtypkuYJOqu2U0jle0Xq1TXXXDNhwoTx48e3vAR7zrxIwMo5 MafnslevwaBU
L8+isfUi/zbb3GbbkupGL9pctJ4jPAiAAAiAAAiAAAiAAAj0BIH+FrAWL178 i1/8ggQppUyl
bxRMbUq9uuqqqy699NK5c+f2RDn2kJGRgNVDFsNUEAABEAABEAABEAABEAAB EAABEACB7hLo
bwGL2D7++OO33HIL+WFdmbVRGNrIaYtmDpLsRccLFizobun0ZeoQsPqyWJEp EAABEAABEAAB
EAABEAABEAABEGiQQN8LWA2yQ9SlCEDAKoUNF4EACIAACIAACIAACIAACIAA CIDAoBKAejWo
Jd/NfEPA6iZ9pA0CIAACIAACIAACIAACIAACnSTwZr7trdzb2/k20jvybHtz b+/m297Lve3L
t72fb9ufezuQbzuYezuUbzucbzuSvFGBdrLqIi0QgICFOgACIAACIAACIAAC IAACIAACIAAC
IAACINBqAhCwWl08MA4EQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMAVsMZPmood BEAABEAABEAA
BECgNAHdvywdAy4EARAAARAAARAAARBwNDtBwJr94MPYQQAEQAAEQAAEQAAE ShCgviYXsErE
gEtAAARAAARAAARAAAR4n0p1riBgQa0DARAAARAAARAAgdoIQMBChxsEQAAE QAAEQAAEqhOA
gFVb97R6YSAGEAABEAABEACB/iMAAav/yhQ5AgEQAAEQAAEQ6DwBCFgQsEAA BEAABEAABECg
QQIQsDrfwUWKIAACIAACIAAC/UcAAlaDHdb+qy7IEQiAAAiAAAiAQFECELCK EkN4EAABEAAB
EAABEPAJFBKwNu88wra925clLu5OIV9bi6XfQQAEQAAEQAAEQKAXCPAOjnNc vfsoClhrdx/Z
+QR7i7Zy+ztpPSsdMqWLJX6FLhleVYIACIAACIAACHSOQMf6VJmLuFt9IOp4 HUlUqdBb6lz9
qN6xRgwgAAIgAAIgMOAEynW21FUcnX+GvpU9sJ547cjuzfraZc+/+87za6uV AgQs9L5AAARA
AARAAAS6TKBjfapiAtbsB9c+uzd+eUidsHCL+15BF+rZ59/1Tr777MqQJr1m 1OKXuXY7/Laq
9Vy7XFNhPAiAAAiAAAjUSKBcB6icAY4OpSNJOs8D6DCiepUoYAX9qLhfZI6Z t3skb4XBnqCO
k+plaZXKD5nU+4qd4t3e2sOkmkWQmZRWDiCuAgEQAAEQAAEQaC2BvuxTFRWw gn5P0JcyTu+6
KxZ0qpiYpfpndNIXsMzJsBeFiYcQoUAABEAABEAABCICYn+rid5haQGLjOFG irYlrYFlvK6E
+YNaqAreFx4xswt9NytL0pJ6X2HnSu6tod+Few0EQAAEQAAEBoJA//WpCgtY NIsw6CfFL/QU
kXBBB3eyYXzSE7As/3lMPByIO6eJgQfiBAEQAAEQ6FcCta9IJYKqImBpDSup CBIXcY9FJT5/
0HhFRW/1uKOW1cXyQib1vkKVSuitPRwuB6G9wNAJAQEQAAEQAAEQ6GcCfdan KipgxVMI7UUc
wt4bBKx+rvf9OkZCvkAABEAABNpJQPe3mjOvioBV2gMrXI2B9CP6y2b5Rc5W 3AOLa0zxeep9
uSGzBCx5nqDj4YUODAiAAAiAAAiAQN8S6Kc+VTEBK3jvp3pOwYJWzuu7YAph 9Ns65lszW9As
AO8uhgVX9r69VZobdSBmEAABEACBvieQuRZVRQKlBSy+7lXBNbDCJ36gQ737 TiwtBZ0rdWw6
SLIHlhQyqfcVTyFMdLaCCzx6XyAAAiAAAiAwKAT6pk+VR8Bibxn5e7ygmxVt egrhzsAvXU8q
DGtDHGzn82YRd7aA6GtYxL1i/xuXgwAIgAAIgMCAE0hapjQdSzkBy1esRA0r cQph5LQev/OL
PwaR7H1tJy19FfS1kqYQxou4m5CBDuX1vpg45fTW2MfKP4A4KJ3+Ab+5kH0Q AAEQAIGBItDy
PlWmgNVw78Q4wzecUNBBxA4CIAACIAACINCHBEp3tspdmKdHkSpg9WER5GGC MCAAAiAAAiAA
Ai0nUK5rlHRVLZ5fvE/VFQErXHkh2jB/EL1YEAABEAABEACBfiMAAavlHXSY BwIgAAIgAAIg
0BMEui5g9VsntSdKHUaCAAiAAAiAAAh0jAAErI6hRkIgAAIgAAIgAAJ9TAAC FhQ0EAABEAAB
EAABEGiQAASsPu5JI2sgAAIgAAIgAAIdIwABq8EOa8dKEQmBAAiAAAiAAAi0 lgAErNYWDQwD
ARAAARAAARDoIQK5BCwKhB0EQAAEQAAEQAAEQKAcAbXOKG3lLsdVIAACIAAC IAACIAACuQSs
997ehR0EQAAEQAAEQAAEQKAEAccDq0QMuAQEQAAEQAAEQAAEQCCXgJXyO4it +grFCQIgAAIg
AAIgAAJtI+AIWK3qO9ViTNuAwx4QAAEQAAEQAIG+JJBXwNKu720+6MsSQqZA AARAAARAAAR6
moAvYLW5N1XCtp4uHRgPAiAAAiAAAiDQKwQgYGF2JAiAAAiAAAiAAAg0SAAC Vq90i2EnCIAA
CIAACIBAmwmUF7A+fuwXS7yja/SSNoPuRdtWrlzZi2bDZhAAARAAARBoFQEI WK0qjhqNQU+p
RpiICgRAAARAAAQyCZQXsP7oi5/XatTHjz2mUWUqZ+R+bk/5yQWZCBAgiQC6 ZagbIAACIAAC
IFCdAASs6gzbGQN6Su0sF1gFAiAAAiDQrwRKClizRmZ97KhP018lLf3RFz+b U2NqNFi6gLX0
rI8tP/dTVx7zn+gv7f1aojXmC92yGmEiKhAAARAAgYElMFAC1uzlo//t6xf9 9udPpr903N+F
jp5Sf5cvcgcCIAACINA2AsUErD869vPkePWxL372I0d9+mM/PId20rA+8tlP aCWrUX0qM/J0
AWvhTz66/935V3/lv9DfxWd+om0l0UJ70C1rYaHAJBAAARAAgZ4jkCRgDU+8 87/9zSlO94bO
0PnMPk+rAugSmf7git//u7Mnzls7e91L9JeO6UzPlVd+g9FTys8KIUEABEAA BECgOoFiApbq
LQXuVz885+W3n1nxzEwlY9FO5z/8iT/+yGc+YfeolowbYttxk59O7HBRyHFL qnXHRAGLZhGq
/aq//xCpVz/81K/TX/LDsgOvmnm+3q5dvi3fSq7bFlx//h0b384XOG8wbsn5 MzcUipyurdMe
dMuq32CIAQRAAARAAAREAUupV75WlXSeukhuV+npycel9ax0pyqliyV+VbhL pouYvK7G3b1y
4tJn1E7HdCa1ArBuz8QFL+ftLNm9o0r9sUp9J/SUcHeDAAiAAAiAQCcJlBGw qEP00ZPPWfHs
zD846TefeWV0445ljzw78vunnE3CVqBtffHT5KgVd5qsPlCoZiWpVIV7S77Y JQpY+uSs7/2u
9sC69/t/7AlYkfTz8tJrz5+xKlcZVOowJSlTVTpSVa4V7EG3LFc1KNfbxlUg AAIgAAIDQ0AU
sE4453rlfqVlLO2QRWfoW+Glnt1Xyqtfpb0drFnAopmD/zRl1VcnLTvmmkXH TVpCx3QmS8BS
HbDNyycWfW8Xd10a6Y+pyKlnlfZeEz0l9JRAAARAAARAoJMEiglYtFi7Wq+d hKrf+8HZz+we
JT8s0rBWPT977vqbfu8HwYxCzwOLK1bU14oVrNg3K353GHShJtPX4cZOxofs 0uAVZBRsMvfb
Shew7vrmb8844Q/J/Yr+0p4kYL234Y7zg3eA7JWg1rOCHlK0Bb5RusMUHKj+ jXQVRRhu1y9d
YDykzMnNiZaonr2JnKUYJHTHctLaophVJEzAMqbqjhd1Da9dviHIwvVLw/Cu DW4AdMs6eSsi
LRAAARAAgX4lIApYWqVSutVNU+/VShbXtuik2sP+Fdes9DHzdo/6XOFXS4JO VdiL0iqVHzKp
9xV33tzeWmBB5FrP+ne64Mjf6vu3LD/1jlG103EODywlYOk+TGZ3xetryf0x v5uk+lFq070j
nW6oVYXdJP3txhlxty/sCgbvONUW9wzRU+rXexb5AgEQAAEQaCeBYgKWEqdo yXZa9+p3Tzp7
48vLSL26cul5jzwz8sD666c+etHvfv+sVAEr7nmZDpjV/fJ0K+o3+QKWORn2 okwHKl3Ayv8C
MNJ3ojfDvGdjvxuMOkxhT8uddWj3h8Jvw35P2EujCyM/ef/aJAmMLuSBg2Cx nfr1oJCoUdnC
d5uhNhfrYq4NdoC3d6Fb1s6bFlaBAAiAAAj0FoF0AYs6Ts60QS1g+b5TQgfK BNJCVdg/MrML
9Xl/UmEgUEm9r7BzJffWBFd6XRxqDayfz3z8igefGjcyqtfASl7ZXXd79BoI md0V7TMed3uE
/lhSNynusBmnLaubF3WTTD+Ne2AJfu7oKfXWnQhrQQAEQAAEep1AGQGLujS/ 9b/++Le/dxbN
HCTfqxXPjJw67SszV19xy4qf0UlaCYtmEYpTCNXyDUE/ib0CjGcVWr2r+IMk YIkBw/TSBSz1
44MJv0IoyEbmPZtSnSLPLDbVLuz9zJxhqVrCVWZCYtz1iV2f1Gs8e6EreRqg ipYpa1YwekMY
RsLiZ7Mg429tsUywwVXT0C3r9dsb9oMACIAACLSBQH0eWEZUcnyx4gVHlbrk TC40PSfjPxW9
/0vqfYXxCL01dc5deYtD9rWq1JXduQil1KXM7grzhNLvBd3+mNRNop6P0DtK f/lnTSEMHbKs
d5boKbXh/oINIAACIAACg0OgpIClfnnwP5145tz1N96//vqR1VccM+FPr11+ 5m9+9yw1i5B+
rDDUlJyXfvE8QP9doB2yCQGLfnkw+VcIPdnIyFVMFXKWF9WO6Lo/JF4lCliJ y2zJApZyYq9Z
wHJtgIBVaMl8BAYBEAABEACBXARqWwPLiFPUoWKz/CJBiXtgcY3J71XpkFkC lrxyqePhJbxB
5D3p1JXdTbeH3tWF/RxPwHK6K35fy++P8UUV3t4VvcmrLGCFmbIcxCBgDc6Q CTkFARAAARBo
A4GSAtbHvvhZEqo+dMKZHz7hTJo5SL5X1yw785PnfPRD3zkjZQph0N9RHSpz xL3Z49mA5lvj
gRW+8Ysd2vW0weBsxhRC/SuE5HuV+iuE1u/3maXcLSfzpCmEkbQkXMUXFg2c nuIphIlrgkoC
VtTlcvzYY2OsFbj0QhK+k7zdI+RLa0WTJSFg5RqHtOG+hQ0gAAIgAAI9RKCu XyGM+kxB5+g4
rV+ZNUKtI0HAkkKyjpTV+9I9rqSfObSUr/SySF3Z3XR7SGYSBCyvu5Lc1wqk Jba6gthNSp9C
mNV3cheXwGIL6DiBAAiAAAiAQEcJlBGw2I8M7qEJgx/81pkf/PYZH/z2mXTg LdYgeZ+rQK4X
e9ATGhctzs5EqThYuMC7WZs0XkCUrsi7Bhb98mCeXyGMO2HxpMKJd8ykpaPU 2z+2iHvQQ7K1
rTCMcBVb8vMOs4i7sx68+SUmNplRuVzxqYuBBKZXiw9mL9qTEJn4lbSIO1+r y7UBAlZH770e
GnrBVBAAARAAgSoERAFLL33l9J30Uu7+AlhsfQb+o85xX+u4ceOipUGTphD6 IcXeFxOnnN4a
+8iVrXQ4qSu7s25P0vKgbnfF62vJ/TG/m5RjEXfVTWJvH6NeHPXxnE5g2HOD B1aV+wLXggAI
gAAIgEBRAmUELN6j+q3P/DG5Ynk/Ppjc6ar3G+Ohlb0GlvrxwYRfIeyIcuGv olX+F8TlmYZF
iz89PLpl9fJEbCAAAiAAAoNJIEnAqrdP1MXY0os1aWX3JitDJ7pJELCaLMGO 9MzL98NhHgiA
AAiAQHcIVBWwPnKUXq+9Yx0n9vqPv4DMWsS9S0/ZcK2EaLNmKVazpxM9MwhY 1cqoO7c0bAYB
EAABEGgbgQEXsKg4kn+FsKFnZSe6SRCw2najwR4QAAEQAIG+J1BJwOJzCTsm X6Uk1Pel1eEM
QsDqMHAkBwIgAAIg0JcEIGD1ZbFCwOrXYkW+QAAEQAAEWkugkoDVBtGK29Ba yj1qGASsHi04
mA0CIAACINAqAhCwWlUcNRqDnlKNMBEVCIAACIAACGQSgIDVkO96P0SLblnm /YMAIAACIAAC
IJBJAAJWJqIeDYCeUo8WHMwGARAAARDoUQIQsPpBaerRygezQQAEQAAEQGAQ CEDAGoRSRh5B
AARAAARAAASaJtBXAtYRbCAAAiAAAiAAAiDQMgJ9L2C1jDfMAQEQAAEQAAEQ 6E8CuQSstq11
BXtAAARAAARAAARAoFcIOAJWr5gNO0EABEAABEAABECgVQQgYLWqOGAMCIAA CIAACIBAvxGA
gNVvJYr8gAAIgAAIgAAIdIMABKxuUEeaIAACIAACIAACA0MAAtbAFDUyCgIg AAIgAAIg0CAB
CFgNws0f9dDQUP7AAx4SrAa8AiD7IAACINBzBCBg9VyRwWAQAAEQAAEQAIEW EigjYC1bupR2
JzPiyRZmGCaBAAiAAAiAAAiAQCcJQMDqJG2kBQIgAAIgAAIg0K8ECgtYJFQ9 +OCD8+fP4xoW
HdMZOu8LW/0KDvkqR+ADx9+YuZeLOfOq+87//9GeGQwBQAAEQAAEQKBeApkC lnoLiE5UvdgR
GwiAAAiAAAiAQJ8RKCNg7Qw3pWGpnY75yT5jVDE7eXqlgzMtbsz4+WMmzKP9 2PHRPmb8vGin
83Q8YV468NKs7j3vNw6+PIP+VixQXA4CIAACIAAChQikC1jUT1j+yKo7R2Yr AateJevUS+7N
b+rUmQ+l7/mjQkgQAAEQAAEQAAEQqJ1AGQHrgQfuV3LV0qVL6Zj+qo90nPPl 4dq531t040fm
Tgx2OqZc/Y9xX6e9RPa0PKQ7fP6ZzGg3TZy48itHJe30bWYMqsfpB6OTL2x8 Qu054fiRKNch
vj/98GV5THLC0FUPX/dJJyo6Uy42J/Kc/k2rt+zO3EtkTV3ig7rn3N/g++F9 u0jDojOlk8CF
IAACIAACIFCUQKaAReoV7Ruf2kxdBa1kFU3FD3/X7IdPOHcG/c0ZFalXG/cc Sdrp25zxIBgI
gAAIgAAIgAAINEGgsICllJr77rtPiVZ6ozP5BZq5l394376daqdjipPUq7vX /KKEjEWJHjx4
4MCB/bTrV5fOmUxwK7/0Z/vumZ6007eZMSgs4tJgzz7+uNrz8+HJkShzeP8b zk4n188/PY9V
OgypVIt+8QevbV3kREVn6HzR2Pyku+7fJIKKMvvuC4fZfvCFa2eeAw2rUPVB YBAAARAAgfIE
UgQs5X61+5XXSLfifljlE2NXfu/8ka+feRf9pXO/nLXyR8Pz//Hn96XErASs 8Vffnb7XYhsi
AQEQAAEQAAEQAIGiBMoIWEqsUdMGR0ZGyAPLXxIrXawJBKw996hdC1i/XDVM ++2rLi0kY1FC
JF3t37+PC1jOmUwogYA1ffrOL33J3+l8fgFLkeHJ0cfRB+aqPYVJ+rQ4x7Ho ySU/Pbzv5ULL
OSn16vDeZ3ZvmubERmfoPH276aFLM0H5AUj50i5OefybMhfAogDpZqSwEkGR hSNn/Xu1H377
KVKv6KBETnEJCIAACIAACJQjkC5gbXxirRKwaH/+hW3bt7/g+JLnWYtAGbbg mv9Cuzq+eNI8
Uq/UTsd5LNcCVoofFmlbeaJCGBAAARAAARAAARConUAZAYs6UqRbKfWKHK+U hkV/tQOUOp+i
19xzcShg7ZxIf+mYckWi1VUP/0u8X3TVwxd97JyvfObmb2dmmFLZ997eve+8 SX+1Ac6ZzEhW
/tnHaZ7gzqO+5O/B7MI/+3hmDBRA59fXsOZOmVrO/UpMN3A12vtMIQFLXaLU KydOOqM0rEIR
qkhIFyNXJu7cRMc0Ry/Fv6n6Glh5ykKFCXLNlL67z/j3pF7R3/wxICQIgAAI gAAIVCeQLmAd
PHiQdCtSrx5dtfbQoUP0UdzydCRIvSLXY61hkeWkXuW3nwtYr753RNwhYOXn iZAgAAIgAAIg
AAL1EigsYGn1atWqVSRUPRJuSrGiM+pbdTJdwNqzdfq+TefTXy1gfeWuf7b2 O4OPJGOlZ5hS
efvN11575SX6qwUs50wmskjA+rOjdnp7OQHLmU6Yp9OZaaQOQLrMoT1rCulN 6ZeUiFAZo3ya
yCPM+De9NCXdvylzASwKkB9FekhH6bvzJ79Oe12RIx4QAAEQAAEQyEkgU8BS kwdpDSwSsMgb
i5QsX8NK6Usoxyu1q7nzWsPSAtaWf/i+2lNs5gLW6/uOiDsErJyFjmAgAAIg AAIgAAK1Eygj
YKl1r5TL1R133EHuV7TNnTuXjumv+kjHhQQsEqq+MO278X7CF6ad8IWpwd88 AtZrr2x/6cWn
6a8WsJwzmdTmfvzje844Y+d//bi/0/miHlh+cpkCVs5f1tNT5A69ukQfZ+aO Atx1xr+nS+iv
E7h0hCoe8mY6vOdx5dMU+De9NKWcf9M9P48MowN9nJSvnKzo8tLCXB6kCAMC IAACIAACOQlk
roGl5g+SjEUaFv0lh6wDB2iBT2tP6Uscen1FsL+x8tAbdLBSfbz30t8h8/Qs QpKuXpn4y/wC
1pv7jog7BKychY5gIAACIAACIAACtRMoI2DRrw3yCYOTJ09+0N7oTLpkE00h 3HqxnkL4O6d9
6Zszvxnt93zjm/d8g87knEK46+Xntz67jv5qAcs5k0ktELC+98OdH/6v/k7n g2+zNkramSfI
V6zIFLCyoo++JwXq4M77+O5rUklR/fIHv+p/FUS47RYT4bZb8kdIsZFD06HX lim3ppz+Tc4a
WDNWPEeK1eFDb9Dfp7a/Tn9pXf9MDSsTV0VhLjN+BAABEAABEACB/ATSBSzy t9JrYKmJhPv3
0+qe7p7Sl7jj3A/rPXisb7uFPirzSntg/X8+e46/k6QFASt/uSMkCIAACIAA CIBAvQQKC1iU
vD8/jvQs8r1Sm9a2Ugydfv6v60Xc6ZhCklz1g/vHhvvX6Zj2nPkkY6p7YK38 SKoHFn2bupEN
L2x8Qu3+AliKWM7sZAYjHergS9PULmpSmTE4AYIIqbNLEW67pWiE00/9tUO7 59Df/Ik6a2A9
sullJVoFUmbofkXHwcTS2Ccrf8w8ZCDMvXCtEeZeuLaQMFcuUVwFAiAAAiAA AiKBJAGLugdK
vXr//f10oNQrOt63731rpzPvRz+1nE6YdCuuXlHg0mtgvbv/iLiUOwQsVHIQ AAEQAAEQAIFu
ESgjYHFbqe9166230gJYfKMz6ZJNIGCRZhHuWsA6Y34x6UqZQQm99earr+7e Rn+1BxYdk6ql
z2TCXfKBDweLuH/8z/ydztO36TFQus8+/rja/Yw7ep8YVf5pcXS5kpyKik0p WSgd4dQf/Rot
2U5/MwnrAM4aWC+/sTcQrUJfPL7v2XT+Pef8ShVWQaZIwyJh7oVra2SVP6cI CQIgAAIgAAKK
QLoHFolT1r7v/Xff2+fse999L8/LMOWHxbGX9sB6f/8RcYeAhVoNAiAAAiAA AiDQLQKVBCyu
XtGiV6Rb0V+lZKVrWEtu/catZ/y62umYMl/I64rDIhvoJwjVrgUs50wmXJKo 9k2fnrTnEbBG
H5irdrF/mafTmWTksZfMPvGca2inAx2GKzJigJQsZ0aY35IpP/w1WveK/qpL ilqiE7rjtF/Z
t+mM4Fcp9b7pDDqZWXDpAZSGBfWqIkZcDgIgAAIgUJFAuoD1zt53ad0r2sWD p59cs371I6tW
LCrXlyi6Bhat404SFfle7T8o7xCwKlYGXA4CIAACIAACIFCaQHkBi6tXSq5S u3bIKtfTKpoT
na52dPLPZMa59hs/JJUqaadvM2PgK15lBi4U4Ojjxn7yL4KdDsQLMwM4VxUN ry8XL7z95H+X
HiBnZm87+V+pnX6bct/ab9BBzgt1sDzCXGmJragxCA8CIAACIAACmkC6gPX2 O++qRdzFgyrq
FS+CPL9CqMIrAevgQXmHgIWKDQIgAAIgAAIg0C0C5QUssphUG+V4xbUqpWGl /wpht3Lb2nQL
TSFsbS6qGzbpe/+K1Cv6mxJVEqs8wlyeMNVzgRhAAARAAARAgBNIF7DefOsd 2t96e694UNr3
qnQRkESVvpeOGReCAAiAAAiAAAiAQBUClQQspWGVW/WpitG4tl8JkHSVrl71 a8aRLxAAARAA
gT4mkC5gOZ7j/sc+JoOsgQAIgAAIgAAIgEB+AlUFrPwpISQIgAAIgAAIgAAI DCCBFAFrAGkg
yyAAAiAAAiAAAiBQjgAErHLcar4KUwjzAwWr/KwQEgRAAARAoA0EIGC1oRRg AwiAAAiAAAiA
QK8TgIDV6yUI+0EABEAABEAABFpNAAJWq4sHxoEACIAACIAACPQIgVwC1kps IAACIAACIAAC
IAACpQg4AlapOHARCIAACIAACIAACAw6gVwC1pHGtiVLlpSLu/MXZtrZI5Il zAQBEACBXiWQ
2Q4jAAh0hsD9998/ZcoU+su3hQsXPhJuq8PtySefVH/pjCNg/fKXv7zppptu u+22WwZ1uxlb
fQQGtRIh3zUToBaJ2iVqndBA1Xd3Iqaba66miG5QCegGipqpLgtYnelodiaV Xh0Rwm4QAAEQ
6BECnWnMkQoIZBIg3YqUqTfeeOO99957+eWXt2zZQh/pL230kTb1FW104AtY jz76KCVx+PDh
zIT6NQDlfWC3fi1T5KvXCagWiVonNFAD2zoN8lOp1+/fvrdfN1CU0y4LWJ13 pCqdYma16JEB
IMwEARAAgV4lkNkOIwAIdIaAFrAoOSVUKRkrp4C1YsUKuuR9bCAAAiDQJgLU LlHrhAaqTWUC
W0AABCICqoGiv10WsDrT0SyRygeOvzFzd6Lt1REh7AYBEACBHiFQojHHJSDQ BAHugaU9rfIL
WEuXLt27d+8777zzdgMbRYsNBCoSaKBivl3RJFzOCTRUQNQuUeuEBgqVreUE Gqr/Lc91D5nX
UAGpBor+dlnAKu0P1fSFY8bPHzNhHu3Hjo/2MePnRTudp+MJ8yBg9ciYF2aC AAj0CYEmlAjE
CQIlCDgClvLDyi9gLVu27K233qIeHv2tfXuzga32zmjtuaYIG8j3mz1hZ+2l M8g1swmYvVIz
VblT64QGqidufKpXPWFnE/dUT2ScCqiJvNceZ881UFT6XRawSvQaO3PJ6i27 M/cEAWvJuCGz
jVtC40Z+5rjJTyeOJJ+efJy6MryqY1te85o3iCzhWXc+FkpfX1slkiIpLhmn TdflaJelaEnN
5nUraV2HqlXdEjSs2y3t7ipSmDnCljBVx1rl2hymFQ3Cqi67tPY7KCgpq3qY ovNrDX0nF2Zn
2n+kAgKZBEQBi5Z1zzmFEOPDXhl+9ISdtY9nIGDVi7TnxodooHrixoeAVW8x NXGf1tuSNBRb
Exmvt2hUbFph776A1bQjld8HLZ1iZnc2Hvv5o1NzJtAXEof4qV8WHZQWCJ/T vAIxJgdNHJeG
l/SQgGVnhIouHm4Ho3I29Gaj9uqyRTq9UCjtStLMLlkMqaXuyJFkMElIudxV PLIqpVnl2jwo
i+aOVV8Tfa1GhrfBOEuffnryuEjM9xo+JcNCwMp85iBANwn4UwhpEffPf/7z dD7PIu7UFVHv
ZqVO3tKfDw19dcrm+Cv6+POlRTqDPdEZbcLIJuIsAj5v2NrtbGJUkzczRcLV nvGGBvBF8pQr
bK9knCoSmUqtU0oD5bZHm6d8lbVWDEdiw9UTNJowsok4c9W/goFqtxMNVMES 6HTw2ku8oZZZ
N1AUPzyw5B5w5gJYFCDZA8vRqNhQkA8tYwcENVAzvjPqs/1t+P1xk5cEI7to YOcGCKMOA1hj
P+aTE5klXBgbHJnnpeUaF4lNk2OXMTPWTDWbuVzQpWyAGo2gkwQsc10s/yVk 1qQ+OR4s2/BD
B7c4YS+b8ejdZFeXpJ0vlpHAWc6kIYiQusiDUB6xFPN4nQjy7STqKhldTDqU JwIQjsJj0WY1
PA7rcWY05Crn13BfrPFrSxZJIS1eN+imSqmrvFgpWJy6udkKFXp6bH6zINwI bj3JyF3oEerc
edYp/V3mTaecS4W4VL1I+sKpuTF6CFjdVGeQdiYB3wPr1FNP/cQnPkF/cwpY dFNQJ0zSpNVN
rG+BxHsqSc+m3z2sfcujnfdlmCZ69n0JKk+maq+WFGGedLseplcyrlokJWAl NlB2gyS+AUvv
DPQKja5XmzwGoIHKQylnmIGtmb2Scd1AUYF2WcAq7Q/V9IUV1sAS1RY1nGUj NdPk66Psb02H
Vrg8TFeLYUzlsqQF+UJjXnhdOOS1RCmm+URSRZAc8zqKr4tOWZmSo7KlG2+u pTiZko+lxcya
5GNJJb4kAbjk5+GNFmRo0uhCGmjE5yRielCfUKC2LOSLNaxN7mLSsa5iqkxa NdM2+xbbWonS
Q8xtkVjD4ym7ScKxL7BxkuzYpGXfAnJdVcmZYg3tC0/aNru3SVahMwXbjq3A Xc8rp3/zOje4
KC7xsjA5dVsYwaTEfoI8CnfkqyhQYpc4U1ZAABDoDAFHwKKP5H7153/+5/T3 xhtvJA2LeoR6
cfdHHnmEd7bomPowFOD1119PELACj0X2wobdg9azMbhh4vciXEBfHPVHF0dL Ghx3+6aKPdSc
A4D+C9bE+LBiWXTm8iaKsgnLm7Cz9jh7JePUIpGpSsBKbqD4A1ofp4x93F5W 1DzV1zr1io5Z
e71SImPtWxPVtfY4m4BZu5G9UjN7JeO6gSKDuyxgdaajWSKVzAWwKEARD6xo iG1G2Kyp90e9
1qpZZkzsTA/zV9ryRqq+4iGk6z917NGjPe5kcoyVm+CDnCnuScENilMxqTkj XPPROJEY+UzK
rGeRcfvIts00hkwpiV8jCeuaWY5c0cpmGSqSbx9Xt+wCFdSqKgJWk0krcqqQ bP9BPtRyqUb1
xakesZLJxCjGSBRSXVcdt7akk5SrtyOgpNRVq5YyAVUPOIuQt5353NjkmzeV Sa7cqcJzMIoC
lnTTubdGEQHLUa9M9iFglXhq4ZKOEuACFslVX/3qV//u7/5OCVh0kClgLViw YPfu3bvkbf65
Q+fO30V/g3+7goPwv9n0mSDMsbdsUIGi4BtuOVaFpwP1HTtKSBGnO0pgZy9s HSWCxFpDgNol
ap1SG6j0poW3TqrhojNRSxRcidapNWWdZEgvtE87W08RBjZCQDVQ9LfLAlbT jlRJa2CpdJP+
lusFx+M2X8MwTgWpcwLYYE7QQdJEpVhlySdguZO9/MQqCFhu5M5A1NIS1Hcs RIKAZS7ig+ri
AlaGbc7Am3mpCMXBMuK8i3In0+mQViyuDijWGleZSRWwXC1AudVoPSlVRvFd lwolbcgFRgSX
SkKeUbmsyLk3kEtFRVxMwPJrSw0CViTwSHW1moCVfDNavk2qUmXWQ1/e7YCA 5U0eTVKwPPPd
E0x59BT/ONJyjTOuAoHaCXABS7tf0RRCpWFdffXV6R5YOQQsJUopJSsSsILR X7TpkaH5yqhV
Wvhi+rKjgTXStUSk+QhgfJiPE0J1gUAeAUsrWEYkD2XyhNZJErBCxV1vaJ26 UNLJSaKBalVx
wBhOoC0CVu19yroibGgNrMCFwpmuZw/+o8FgrAOwoaCtBAkBbEmFTfRzpxC6 s+ayBCyjg7hz
o1xrM812HT2US4k2UBawjDJjjqTMcgXHgI7jzLbNH3fnvNZVppJXUo+zaoxJ ScLkIbYs0S1F
Cz1dSZrMioswLgOBtsYranWOv1JSZc72wEqoLY6syEmKaYkeSWJdzRSwiha6 uatcD6y8d325
3KVMwNSl4/FPK2j3hrILXhBcE5s79kVdLTziAYGKBLSARfGoqYJ0QD9BmPNX CBcuXEjO8Mof
3ttoas04NcuGjo67/fboY/ghnAqoA5iQm24/LvqSjtTl5ssm5gcgThAAgX4j oBolap1SGyjK
tWpv6G/UUqmmKqF1Mt8F16F16rdag/yAQIcI6AaKDgbUAyuz51rPGljRhCo+ cAslG6NhcUcD
e0THvBHihXBsrxg3gDgOt5avZuNhnm6mgOWvMB95gwSLdISbGftmmR19zwQP e2IkH0Vrw5TO
RTTHjaNZatFkRV/L4MuE6188Y7lLt00PxVkwY5t7bZyW5BnDHUmc3HnEUswT yo7RE9yK9DS+
iFb0I29JhVVj0ibHicR8qgJn0SQdZZaqFckcfm1JJylWb0ErtE/xypksOYVO U0UKPV0Oc1ej
Z0527gp75rYUCsfLnd8GGHcvnlPhpmN3XaKfmD25WMthKZMPE7XazKYbAUCg MwT8XyGkHlx+
AYscwNXvDEnLlyyhnx0MfqSQts3qp1KCj8GhOm2OTEg6d9zkzda3QbDoXO2L pCBCEACB/iOg
GiW1BlZyAxXmm9qe4447jjdUia1TEFQ1TnSkWrOwEUPr1H81CDkCgQYJ6AaK DrosYHWmo1ki
lQprYCUuAdNfXwhD3uIZzHApKh5hl64onY90N5TU3CwZ507zK5b5LiZdzNCW hC5XxrXcJk0T
KJe1pq2S4y/RmOMSEGiCABewlBMWrXuVX8BatmwZ/SA0dcKk3xdfdsHQBcHX 4fbslK8ORR/p
fLh99YILonMmJAX76pRn4wsuXP5OuD03lQKqLT6lvii8NfE76LXH2enfHi+b Xu0Z75UIC1e7
HBf0RN5z5KNwkCYyrlokap1SGyiVctAcmXYq/JjUOqlWjLYLptDBBbW3TsSu CRq1x1m2wej0
dbVnvFciLHwT5rigJ/KeIx+FgzSRcd1AUeRdFrC6tQZWE93Z7oznupZqHSPz OuLoGgAn4SXj
cq8FFF4Z+8WUVaEq6FddTLotpVXcjpJ1teRlxe2rcEXRqlshqeqXNtF0I04Q KEGAC1jke6XV
q5xTCB9++GHSvPbt26emH9a7UbS1b+/XvdWbZcTWEwRqr5YUYd0Vs5H4msh4 EyWuWiRqndBA
NYEXcbacQBP3aSMNSt2RNpHxJspaN1AUeZcFrBK9xtZeUn1shhhAAARAAARS CLS2/Ydhg0ZA
C1hq5uCTbFMaVvoi7hgfNtG7RZwtJ9DEMKnuoVwj8TWR8SbKGgKWLv4m8CLO lhNo4j5tpEGp
O9ImMt5EWbdIwIIHFgarIAACIAACOQkMmkqC/LaWwIMPPrhhwwZaSXT9+vV3 3HHHDTfccOWV
V15yySVXXXXVlClTHnroIXJxP3z48P79+0nJWr58OX9bSMcrV648EG4UoCc2 ZW2NW0/kGka2
n0CNdbK5qNqPUVmoCFDrhAaqV4oMdracQHOtSo0xt5yhNk83UHQAD6zausc5 B2AIBgIgAAIg
UI5Abe01IgKBagQWLFiwePHiW2+9leSqmTNnzp8/f9GiRSRU0doxpG098MAD IyMjs2bN2r59
uyhgrVq1iuQtbCAAAiDQNgLUOqGBaluhwB4QAAFFQLVOXRaw4IFVbhSHq0AA BEBgAAlU0xxw
NQjURoB+Zn7q1Kl33XXXnDlzli5dSlMCH3vssdWrV69bt27t2rVr1qwhFwZS ssgV67XXXvM9
sB5//PFDhw6hP9p+ArXVmF6LqP1FAwubIEDtErVOaKCaYNtEnL3WrtRmbxMw EWf7CagGiv5C
wKrtXkJEIAACIAACIAACg0Bg3rx55HhFnlbkeLVixYrR0VGSrmghrE2bNj3z zDNPP/00HdDs
QpKuaEksX8Ai56z77rvvXmwgAAIg0CYC1C5R64QGqk1lAltAAAQiAqqBor9d FrAGoZuLPIIA
CIAACIAACPQTgdmzZyvfK1KvyN9q48aNpFtt3br1pZde2rVr1+5wo6XcX3zx xeeee84XsPoJ
BfICAiDQTwRofZl+yg7yAgIg0E8EVAPVZQGrn6YQ9lPlQF5AAARAAARAAASS CNCvENIyWKRM
0cxB8r0if6vnn3+eVrwi3YpWdqfpvW+++SZNHty5c+e2bdsgYKEigQAI9AoB CFi9UlKwEwQG
kEArBKzWcv/A8Tdm7q01HoaBAAiAAAiAAAg0R2Du3Lk0efCRRx4h9yuaOUjq Fflevfrqq6Rb
7d27V/2ANB2QkkWSFgSs5goCMYMACNRLAAJWvTwRGwiAQI0EWiFgtdYDa8z4 +WMmzKP92PHR
Pmb8vGin83Q8YV6NhYGoQAAEQAAEQAAEeoUACVjUgaGV2jds2ECTB8n36pVX XiH16t1331W/
Rn/w4MH333//nXfeEX+FsFeyCTtBAAQGjQAErEErceQXBHqIQCsErNbyWr1l d+aeYPzo8JDZ
hkcpVHgmPFJb+HnsyI74MA4+dmR0ZCy7WB2qgHk3ilulpA/yXumGGx1mJu8I DLMsqRx/Ybt8
sJlR5DEyzJqzdZ65RTszX0kBOKJieSidpHihy50Yy+bkKaAcpjF6VnGaGiwm VFPqsYEdSTpK
JMiZKu34dmd3K29pamoNjvDM6aQyTxoDc5QigoBALxGAgNVLpQVbQQAEchOA gJUbFQKCAAh0
mkArBKzWemBVKA1/VExnxo4dq0d9o8P0yQhY4si+9NC69IV2jh3FIfhINjsq nDRk9mWwggqc
HUGALhbwcmaNX8JH8pmCTs74/apR+kIeVaLGk1UVZUSBtJCnfLJiT/5e5BwH t5Ek560OdCz2
QNJh5Rx8jCBUTyg1v0pN6kTSdsGabImMq+daKP8iN1gjBpSvs7gSBOojoAUs +qnB++6fd/r5
E7787dOO+capPzrrwqsn3rjgwQdpQfd9+/bRLELywFq9ejVfcJSO6zOklpiS butmnyK1mI5I
QAAE6iVgC1j+y+O870r1O67OtiN5zasXmhSb0wWq0iPS11aJJLQxeuMrxpMr cv7q0nR7DXVe
2iZsFLKet/XNFx1SaDGBVghYreWTuQAWBUgw3r//gzMj2geF9KuRkViXSRoV +61e3EqYAWwU
re2n5bVxjoORdsiwvLvC0W/o/qUdw3gLpKxkckDYBIaZcrzETGrG9ywMEnx0 UmHPGMmlg87Z
7aEIVnut6bYxdqaKfFSMq0pohimHoPisUX+XmYs+cw5P9ezhzBMRRTXLLVnm SWMpg35ROgk5
xcfSFZFysvrYL3FeXf0a7mZWlVhUwHGdMcUmiHb6/kq/WYSEuMuRVxW9W79z SScJWKLPpd/j
CYFEjp6O3sbdPVM6MaI0KuulubpCrX0GwDAQSCWgBCzafnzOxf/xT4750y+e +LffOv2EU//l
R+decfZFE888f/ykG2+mCYb0i4QdE7BOm3P5//Wzz/3BNd+ggxylx7sfSV2R HNEgCAiAQH8R
8AQsR4BK7XYZFM2/SJWx5zSvljJLbzn9YUVpKc/vzpWyP+Ndea5emxTHjpHh yNmAl7oJac6W
fltfKr+4qB8JtELAaq0HVoU1sBJG6fE9G+hXgRbkTyF0JCNfQQqroSVgaZ8P a6AuTyEMLgwT
tVoUZUYoC1hCumSMjiHWUeIr/NT1HcMbdycVHsboanbr7vSwuTgVazk6B0bC 8p22WDysfbab
6pwCVkPMI03QTDSNINs8hLJzEKnwvLCdkhWVUC9TuSoJK39PThIiMM1ogrCi 5srqGi5nNrEj
JSqAcUrBXZlYXeWEHA+21G6K9NBvJulkAUvIv8g5BqFznVpUdl/UmxIYC4pC p4y+Kt1V68cn
LvLUZwTCRdwXn3LauH//R0d/6uh/PPY7Z510+qVnXnjdhVfcetn106++6a4L h6++4YYbHn74
YVrEPacH1sjIyIknnnjyySf/KN7omM5ccMEFmfS+cPupY+/88ez1N0185HI6 oI/pl5ieSvSW
x5e27XGgevzips4sCQQAgR4nkF/ACvodvMfNXo2b1432cIf1Qa0X595L04T3 bSZe5mFvvZK3
e/lBemEvh72k79Sr3CQBSxwnpr9cJL8HPVBiHe5UXwS/GsoDoNic0Lsiu4lP l6AcASuKj3cI
c6lkPX4LwfwmCbRCwGoyg5XizlwAiwIkJODfmuqMuuVD/co0+Umj4pxiimlo 2GjZa+NivSkK
zVrOuDtqN0eJn7iCZVnIB8r2WlmOgGXN43MfQwIMUZ2R1DFL10sVsLSA57bB XWUeKTfuPMew
rARPGTaUkLoPZphhZ9LOoldnmGaWWUmsbkucCk8t4ZytQfKK4ylrgg18/bhY 7fJLm92ZaXnU
io+fUEZV9G596XncTNIpApbfqeB4dbOQi3NK6ym2Wd7J9B5OpcYZF4NAGwiQ gHXLzZP/n9/8
q098/jtjTjjnez+55KwLrx2+5vbrbhm5dfr902Y+eOesheMuvHT69Onr1q3L KWCR1HXTTTc5
AhapV3Q+Pcv//MCEY6f98K4118f7RPpIJ1Ov8p4dwtsgsTvRBvywAQRAoCkC iVMIzSjCvCuN
ziW89Uz/1nRvE94jRgHMt0F3zZJY0t506jFLONqwXtJ35lWu3bkU3gBIgycr s5GdYQbs1jgB
eOqqLbyrKnS/WSpsfKbXCObMkt5n2F1UqqARAmtwI/WYm6rLiLcPCbRCwOqW B5ZKN+lvtdL2
78zoTNDa0Ba4POmOozgYVLd8Hg+snAKW3eILTUeKgOW3YkKP1o6SPyp4Bj0x xfhMhXFmqAYi
WPEhlC5gRQqWN8LuKvMEASsWaRLmdkaKU4qEU0HAcl/DOMCs0lLfSdWIzrGX RU6Jm3rOYtPP
v8RnHKtgjmTmvjviN1ryzZJas+LWIOlW1UXku4bp1441Jt2MgJX9ys0WBV2h 1b15vT5MtTYV
V4NA+wiQgPWtfzzj43/znYm3j0y7Z/6k22dddOWt19169y9H5s6c+9DcZaML H1l3wy+nX3PN
NQ8++GBOAYtyuW3btvPOO09pWPSX1Cs6k5n7//f5R41bOO6CRRdE++IL6COd LCJgiQ9T/trL
v+0z7UIAEACB3iOQwwPLWcvBrMPAlA3WEbCVnLBZ8XqnWiiJpJqEbqHTDgkx s1Oefhb1mlmf
J+4AWh3B6EOm2Rmvcv1hhTHIe5srvVz0O48pb14dpH69s5Cn5TtfldX6YBzc 6/lFCapxpMmL
N/zKlx5CgYAi0AoBq7WFUfsaWFFz7a7dXljACptTLSHFDYJpRnRzqQ/EJsZ5 AvjaBBMdrMGt
1sKYKOalwAQ4R2Aw6ZqGzhzZQpur6eQUsHiKHALPsnoo+YqDLBp2hDnlNlGw MV8JqMX86hsr
WXUSsev4MxLyOh/WT+Jxzcf8ekFCibueQYa2YIPOl1/Po25J8krqyTeLXIGd +pHxxA3Mdlzl
2NCP9VlsVatw0ikClniDOHKz1CNM4yy00P5dquou4yUGaW1jD8NAoAwBErB+ 91NfueTK2x9d
vfHhVeuXPLLmqpvunnz3/FnzH1n0yPpH1z+34entC5c/fv7558+YMSO/gEWm bNiwQQtYdJzH
uA+OP/Zbd/7wn2f9JNxPo7/0kU6mXsu7H1LL4D6SwlEIVKw85YEwINDLBHII WEHXwuo7CB1Y
W8BKfycqXC41Sv6YSb7QScwTy/ILWJVe5SYIWCYXvCtbXMDKsM2rggUELKU5 2Zv45lKQ2PyO
ujNkgIDVy61DC2xvhYDVLQ+sTP71rIEVdfZSlJecApZZvDpcON0MSoejFb31 4NEb2CutRm/q
UtY0CW9CbL3Efw6EXdggITd1Fq1u6KJz0cPOV5GI0fCw9o31YmCXWzmxHdn4 0mBx5oIUDXkW
jyuMMbnFzmtsTGeYG2MtFSkqOVv5s9592YhSH9tW0Vt+W15Fyq4k+ZA6v1yp 5uvrEme3hkDb
s0GqYM7dxZ+6tqDkVVc+PHPvCCtpFY/NWRjGdSTpZAErrRuX2kkSGgQ/Lgk9 b0c4D9vGzMYW
AUCgFwmQgPXrHzt6xv1L1mzYvGrtpkdWbSAnrBkPLJ+/9PFH1z238bldz23f 8+Rzu0499dRp
06YVErBowiAthnXSSSfR38zJgwrdd0Yu/N8Tx14872cXz/3ZJXN/Rgf/+7pv 0MlUsHwUkUfA
oshS3rL0YhnCZhAAAYFATgFLtQhmkSNX3mZdAeE9ma1iCAGSGiVvCqGbrtiB cUYfosOp95oz
02zX6UmNU3Q/XBawDBdzJGWWd6UM6DjObNv8kuX28HiYy0KONbC4QOVzZKka o20vfTxH0OxU
ItAKAatSDpq8uMIaWE2aZcXdZBPQ5/p46ew1x7y0SdXrWy2Z6p79pVOuoLOo pezKb+WTThKw
SlMonwlcCQKDTIAErN/51LHzFq9Y/+SzpGE9tuapKSPzZy9cuXzVk+s3bdvy 0us733j/hZ1v
nnLKKUUFLKKqNKyc6pUqhb+48Z8+f8MJ1y28eNz959EBfcwsHVmUt8ZU8Ruu +B1YtYYv0yIE
AAEQ6D6BxDWwhLfyoWST+GrcnjdmzZrzOi3ue0RRwBJeLnqv5DMFLB5Jo69y ZQGL/e41f5sr
aEEGSfAG1nGoz37NnKpgeS/4g3LUqaRVQuNNYLlfea4SFIf/blipnq7vWPfr PCzoIQKtELBa
64HVCwXZcBswOty3LUx5cuWvzKhR3aRdR6bqiKP8TVeUXvxMLTsYq6BfVU3a HnKy+cR9e7eW
rxa4EgQaJEAC1u//+fELlj32xFNb1j357Oi6TXfOWjR/2eMr12zetGXn9lf2 vv7OEfpbTsBS
GlZR60+Zden/9bPP/cE136CDotciPAiAAAgoAraANSBUaunFtv5VYvcN7L4F A1Kh+zibrRCw
+pgvsgYCIAACIAACINCXBAIB68++tuih0Q2hgPX4hqfvunfx3KWraPWrp7bs UgLWjtfeKy1g
9SU0ZAoEQKD9BCBglSyjWkSwkmnnvqzoG9/cEecK2N3Uc5mIQG0n0AoBCx5Y ba8msA8EQAAE
QAAEQMAmQALWH/3lWJpCuOaJzas3PL1y9ZP0+4P3LVyx7LGNGzZv3/Lynl17 Dmzd9RYJWFOn
TS+0BhZIgwAIgEAXCQykgNVF3kgaBECgAIFWCFgF7EVQEAABEAABEAABEGgB ASVgPfDgwyRg
0fzBFaNP/PLOuffOf2TZo0+seWrr5q2v7Xx9//Mv7SEBa8pUCFgtKDCYAAIg kI8ABKx8nBAK
BECgC
Re: [teneo] ClassCastException during read of one-to-one mapping [message #58564 is a reply to message #58487] Sat, 21 October 2006 20:47 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Here is the stack trace when I run into the code:

2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException -
Exception when saving resource trading
java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
at
org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
at
org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
at
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
at
org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
at
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
at
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
at
org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
at com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
at com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
at
org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
at
com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
at
com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
at
org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
at
org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
at
org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)

Andre Pareis wrote:
> Hi,
>
> I'm having a problem reading back a previously successful stored
> one-to-one association. During load, a ClassCastException is thrown. I
> have attached two files, one with the model and the other one with a
> snapshot of the debugger showing the line which when executed produces a
> ClassCastException somewhere in the model code. That is, because the
> eInverseAdd is invoked with the wrong object.
>
> The debugger shows that target and value are the same object. The
> eReference value is strange, because there is actually no corresponding
> object for this association to be found in the DB.
>
> The only objects that are in the DB are the parent of the Yahoo object
> and the Yahoo object itself. The load of the parent and the Yahoo
> objects have been passed successfully. Normally, the load should have
> stopped already as there are no more objects to read - instead, it ends
> up as shown on the debugger screen.
>
> Any ideas?
>
> Thanks
> Andre
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #58588 is a reply to message #58564] Sun, 22 October 2006 13:32 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi,
Strange. Which ereference is set?
How does the database look like (tables and records in the table)? Do you see anything wrong there?

Can you send me the ecore and a testcase to reproduce this?

gr. Martin

Andre Pareis wrote:
> Here is the stack trace when I run into the code:
>
> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException -
> Exception when saving resource trading
> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>
> at
> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>
> at
> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>
> at
> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
> at
> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>
> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>
> at org.hibernate.loader.Loader.doList(Loader.java:2144)
> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
> at org.hibernate.loader.Loader.list(Loader.java:2023)
> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
> at
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>
> at
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>
> at
> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>
> at
> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
> at
> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
> at
> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>
> at
> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>
> at
> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>
> at
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>
> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
> at
> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>
> at
> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>
> at
> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>
> at
> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>
> at
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
> at
> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
> at
> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>
> at
> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>
> at
> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>
> at
> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
> at
> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>
> at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
> at
> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>
> at
> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>
> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>
> at
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
> at org.eclipse.core.launcher.Main.run(Main.java:977)
> at org.eclipse.core.launcher.Main.main(Main.java:952)
>
> Andre Pareis wrote:
>> Hi,
>>
>> I'm having a problem reading back a previously successful stored
>> one-to-one association. During load, a ClassCastException is thrown. I
>> have attached two files, one with the model and the other one with a
>> snapshot of the debugger showing the line which when executed produces
>> a ClassCastException somewhere in the model code. That is, because the
>> eInverseAdd is invoked with the wrong object.
>>
>> The debugger shows that target and value are the same object. The
>> eReference value is strange, because there is actually no
>> corresponding object for this association to be found in the DB.
>>
>> The only objects that are in the DB are the parent of the Yahoo object
>> and the Yahoo object itself. The load of the parent and the Yahoo
>> objects have been passed successfully. Normally, the load should have
>> stopped already as there are no more objects to read - instead, it
>> ends up as shown on the debugger screen.
>>
>> Any ideas?
>>
>> Thanks
>> Andre
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #58612 is a reply to message #58588] Sun, 22 October 2006 20:50 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

I have upgraded to hibernate 3.2GA but still have the same problem. I
have checked the mapping descriptor for the relevant association (which
I think is Yahoo-YahooIndicesComponentsSource).

The relevant sections:

<joined-subclass entity-name="Yahoo" abstract="false" lazy="false"
extends="Vendor" table="`Yahoo`">
<key>
<column name="`Vendor_id`"/>
</key>
<one-to-one name="indicesComponentsSource"
entity-name="YahooIndicesComponentsSource" cascade="all" lazy="false"/>
...
</joined-subclass>

<joined-subclass entity-name="YahooIndicesComponentsSource"
abstract="false" lazy="false" extends="SymbolSource"
table="`YahooIndicesComponentsSource`">
<key>
<column name="`SymbolSource_id`"/>
</key>
<many-to-one name="vendor" entity-name="Yahoo"
cascade="merge,persist,save-update,lock,refresh" lazy="false"
insert="true" update="true" unique="true"/>
...
</joined-subclass>


What I am missing in this descriptor is the "property-ref" attribute
that I find in the hibernate docs under section "7.4.2 (one-to-one)".
Does teneo take care of the bi-directionality of this association?


If you think the mapping descriptor is ok then I will create a smaller
test case.

Regards
Andre




Martin Taal wrote:
> Hi,
> Strange. Which ereference is set?
> How does the database look like (tables and records in the table)? Do
> you see anything wrong there?
>
> Can you send me the ecore and a testcase to reproduce this?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Here is the stack trace when I run into the code:
>>
>> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException
>> - Exception when saving resource trading
>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>
>> at
>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>
>> at
>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>> at
>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>> at
>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>
>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>> at
>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>
>> at
>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>
>> at
>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>> at
>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>> at
>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>> at
>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>> at
>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>
>> at
>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>
>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>
>> at
>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>
>> Andre Pareis wrote:
>>> Hi,
>>>
>>> I'm having a problem reading back a previously successful stored
>>> one-to-one association. During load, a ClassCastException is thrown.
>>> I have attached two files, one with the model and the other one with
>>> a snapshot of the debugger showing the line which when executed
>>> produces a ClassCastException somewhere in the model code. That is,
>>> because the eInverseAdd is invoked with the wrong object.
>>>
>>> The debugger shows that target and value are the same object. The
>>> eReference value is strange, because there is actually no
>>> corresponding object for this association to be found in the DB.
>>>
>>> The only objects that are in the DB are the parent of the Yahoo
>>> object and the Yahoo object itself. The load of the parent and the
>>> Yahoo objects have been passed successfully. Normally, the load
>>> should have stopped already as there are no more objects to read -
>>> instead, it ends up as shown on the debugger screen.
>>>
>>> Any ideas?
>>>
>>> Thanks
>>> Andre
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #58698 is a reply to message #58588] Sun, 22 October 2006 23:00 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080200070608090005020404
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi Martin,

finally I have reduced the problem to a small test case. You should be able to reconstruct the problem by executing the com.pareis.trading.tests.ClientTest in
the test plugin. It uses an included hsqldb which creates its DB files under C:/Temp/options. The model project has a dependency on an "org.hibernate" plugin
containing the hibernate libs but I'm sure you have something similar to replace that with. The model is in the model/options.ecore file but everything is
generated. I'm on EMF 2.2.1 stable.

One more hint: As you can see in the model there are associations between classes of different packages. This might also be a source of the error.

I really hope we can get this fixed otherwise I would have to use non-appropriate one-to-many associations...

Regards
Andre



Martin Taal wrote:
> Hi,
> Strange. Which ereference is set?
> How does the database look like (tables and records in the table)? Do
> you see anything wrong there?
>
> Can you send me the ecore and a testcase to reproduce this?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Here is the stack trace when I run into the code:
>>
>> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException
>> - Exception when saving resource trading
>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>
>> at
>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>
>> at
>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>> at
>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>> at
>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>
>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>> at
>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>
>> at
>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>
>> at
>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>> at
>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>> at
>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>> at
>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>> at
>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>
>> at
>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>
>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>
>> at
>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>
>> Andre Pareis wrote:
>>> Hi,
>>>
>>> I'm having a problem reading back a previously successful stored
>>> one-to-one association. During load, a ClassCastException is thrown.
>>> I have attached two files, one with the model and the other one with
>>> a snapshot of the debugger showing the line which when executed
>>> produces a ClassCastException somewhere in the model code. That is,
>>> because the eInverseAdd is invoked with the wrong object.
>>>
>>> The debugger shows that target and value are the same object. The
>>> eReference value is strange, because there is actually no
>>> corresponding object for this association to be found in the DB.
>>>
>>> The only objects that are in the DB are the parent of the Yahoo
>>> object and the Yahoo object itself. The load of the parent and the
>>> Yahoo objects have been passed successfully. Normally, the load
>>> should have stopped already as there are no more objects to read -
>>> instead, it ends up as shown on the debugger screen.
>>>
>>> Any ideas?
>>>
>>> Thanks
>>> Andre
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>
>


--------------080200070608090005020404
Content-Type: application/octet-stream;
name="problem.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="problem.zip"

UEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAAdAAAAY29tLnBhcmVpcy50cmFk aW5nLy5jbGFz
c3BhdGidjz0LwjAURWcF/0PIbqqbQ2sRqaBDlVJnqcmjjcaXmA/Rf29Vii46 uL17OZzLi9Pr
SZELWCc1JnTMRpQAci0k1gndlovhhKbTQT/mqnLOVL5pQ++dAL29kaNEkVBn OSWP8nVG30mu
sSO1rRlwJY0DdhCeqSogb9p1tiqy3Xydl7NlnhV/2IwAxrUFZuEcpAWxUaGW 6H6pdPAm+M62
l/iE4+jz+ztQSwcI1Ryc0qUAAAAzAQAAUEsDBBQACAAIAEkGVzUAAAAAAAAA AAAAAAAbAAAA
Y29tLnBhcmVpcy50cmFkaW5nLy5wcm9qZWN0vZLPSgMxEMbPLfQdyt6b6K2H dAtVvClC9QGm
ybhN2fxhki0+vkmaVZZS8CDe5vtmvvyGIWL7afrlGSloZzfNPbtrlmilU9p2 m+b97Wm1brbt
Yi48uRPK+IhBkvYxTSd3JiwYbKUzzAOhDiwS5KjgpZEnUtOgja3gY5Xd+lwo gk/UYdC92nuU
WVX5kKJgVXEq1FHHUPbaB2QnFZl0lAo4Qwkg/ayQEkDdkNmhaj41BL+i/Irr FbJnsPoDQ9z9
L3Yvj2jgT6DVGU+eeHEgrNMXcfval35eoMzdyuSVX/uh0/blKjDWmfj9F6Yf 7QtQSwcIDCgb
f+wAAACnAgAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAAnAAAAY29tLnBh cmVpcy50cmFk
aW5nL01FVEEtSU5GL01BTklGRVNULk1GhVE9T8MwEN0j5T94oBuxgDFVB0AM SC2qKGK/Otf0
hD/C+VKR/nrSBEIqtWWxbL+Pe89egKcNRsnekSMFn6tbfZMmD7UvLGaLH3QA 7wboBRzmalLZ
uiR/OAzIqnHrYMn0DBOcroCRohaGgnw5VbFdLUprOBOu/5TjDKMUjxZiXIJs c6WHy3sjtAMJ
fDTirR+x7FJdPbvKokMvIK3taIwvDrpJxWFHBfJR/HkwYGnfSXLV90uTp68q sGRLMB9QHtW6
TpMTJU/f6lrInoEa2IZwCevEafKKnzUxZn3cXAUuNRpLVURtAqPm2gs5PFiN MXSbdt8SpjuK
tCZL0uQzRuya/bK3tEb2IJdZY09Bj+EfXft+vSKbw75ZCbDkqv/6b1BLBwjD bUIGHgEAAIEC
AABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAEQAAABjb20ucGFyZWlzLnRy YWRpbmcvYmlu
L2NvbS9wYXJlaXMvVHJhZGluZ1BsdWdpbiRJbXBsZW1lbnRhdGlvbi5jbGFz c42QzU4CMRSF
T2FkYBhB8Y+tCYlACKNrjBsCCQkaowTXZbhizUxL2hnfy5XGhQ/gQxnLwIaF CW1ym6895/Tm
/vx+fQO4Qt1FjuEiVHGw5JqECSaaz4Vc3EfpQsjGKF5GFJNMeCKUdOEwdJVe BBRGYmkooPg5
sOZYyWBwO9yYBuvHNTEUroUUyQ1DvtmaMjh9NScPeZR87KHgoYx9Fz5D/b8u fFRQZSjyMCRj
GpcMneZ4x5Z7qy+rYyHpLo1npCd8FhFDbaxCHk25FiveXDrJizAMrZ2zGbxH leqQhiIL3RJ3
X/kbZ/BHUpLuR9wYsuGV7Qicw84Fq8XstvOw1bXUyxgotT9QbH/Ce7eQw4Gt lczwAAdTFPGE
Q0v+WowajjLdcVZPcGpPL4sq4wylP1BLBwi8l0RzLAEAAPgBAABQSwMEFAAI AAgASQZXNQAA
AAAAAAAAAAAAADUAAABjb20ucGFyZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJl aXMvVHJhZGlu
Z1BsdWdpbi5jbGFzc5WSW08TURDH/9Pbdpe1IHjB4gWxyBYIKy/6ADEhDSRN amOgITE+Lcux
HrOXZnfr5xJ5INHoB/BDGeecro00NqH7cGZ3Zn4z8z87v35/+wlgFxsGCoRl Pw7dgZcImbq9
xDuXUf9tMOzLyECJsBonfVf4gRykwhXhB5ezwzhyD98cjbII1Xb3pHfQbR0S 6p1pxfYIlUEO
NKdmNdrhIBChiDIvk7GCqvvcO5LZa0LRaZ4SSq34XFgg3LJRg8Vl93XcZNeC jTIqhPmOjER3
GJ6JpOedBYKw2Il9Lzj1Eqm+tdPAHcLWFHnDTAbusUjjYeILxWZxYqGIe6rp fcKu874zA7qn
J88+ypTvuy+ykdqJJILrNGeqqjQ/tGGgSjDHZVmVM9MVe74v0rTxgrDt3JhT iqwTPc6R1Fd8
LX3nk/fZI9jtKBJJK/DSVKQG1gkbN2xAqF138MLyDvDiFvBA/WZ+s5R0tmU+ TailmOMvlzPU
M/cd9O4K9iXmLzR2WyMqWGe7hEXtBWO1MfyKPcTW3Cz+wNIV7k6iW9xrW6P2 KBHLehbiqep5
kR22Klb6ipUvY76ifS//YUs5a+IRHudsQ0f+zx78HXmhiidYzYn1vFt58xIr FxPI2lhlAU/1
uYZnWgzpVs9h/gFQSwcINEAWyeQBAAAQBAAAUEsDBBQACAAIAEkGVzUAAAAA AAAAAAAAAAA2
AAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcv Q2xpZW50LmNs
YXNzvVh7fFtlGX6+Nlm69OzWdd2t27p7m7QNY2y4dZsrvYxg28216+gAIU1O 2zPSpCRpt4I4
nCIKiMhFHQooKlMY0A1IKVOYt6GAeEdAEVS8K4KAd9DnPec0ydLLCn+w35pz 8p3vfd/ne97r
yaNvPPgQgFVqiQs5CnOD0W5fTyCmG3FfIhYIGZFOX03Y0CMJFxwKK6KxTp8e DBs9cd2nd3fw
PhrTfUZ3T9hXt7V9tx5M+HnvwiSFRaOo8oeoyegwAu1hXSHfX3t+XW1dffWO hhaFgobdgb6A
LxzgvuZEjNurFHKMkIKrT4+EorG4wtKGbAA00h2N+HoTBhE0GPEEhfI2cEPE SGxSyC0ta1Vw
1ERD+mQoTNfgQp7CtAYjojf1drfrsRYLS0FDNBgItwZiJjZ7cdIGU40buZil YSamiI7ZGiYj
T+7manAjn+oTXQbBzW8YkzyC0vTmRCBhBGvCgTg3l5SWjTiLRWaduaNqMhZh sQslCp5R1LZY
122B4IWBTn1Zg5HQY4FwXMMSLCXumgZ/XRM5XTi+DQVnp57wk+JCwhmFfmfc ejyrdOTTslY3
OSjT4IGXO/SmqHg2yDNGI9v1i3qNmB4yHbDLhQqF8vFCJ1NWAsiNcviE8VMU tpWOcQh/hIeO
BMJ24FX5/Rkg7bWRKxbsUzWsxmkMLQt2v4JvpBk7tiLmDl8mxiqJKmdE3yPk OKPhkFwnk8vm
/nhC71ZYQD5HcZv1uEqCZ72GKmxQmKnXRCOJAOMxVq8HEr0x3V+roPyCcpOG d2Kzgju9R2Hx
2JFjH9GFM0bP5GF0U9sDcSPYnIa7r3QctG+Cl5ougqwaie9kEnLYeg1bcCYz UT/DRpdx6Ksn
HARvA1q6mq4f5m7UtLepY23ojncy3Ve9FSPxtIMWjucgK6S3aXg3tgt/w5xk 8Fc2ZtBkE+hG
C1pd2KGwbHQBq9TK7Q7eadiJsxmhRrw6EtTjiSiNVY/lrGEbJ3ksFWOXwpJ0 7vrDYb0zEK6O
dfZ2s5zW7Q3qPUKVC+eyIGeXpjN6jXBIj+XhPexY2/Vgbyxu9OklQYsOUVBC 2ksC4XB0jx4q
6YjGStw4BxdIwVkpVLZrCGI5G0kiammUx7qGDnSyuAZ6etiPFCpGK4ojlmww VaKi3Y02XCAW
LtQQBv061wr27Xp3tE+vj0W7M3wWejMV6a3Gcj6iuMiFHoXlE4oPDTEwnvMZ ZH16LK5Xh8jE
zRPPzjQ9Vgt6m4pLr4Ya1OZjD/pd2Mtq/yaVaLgYUxgQISPeE0gEuxjxrPat w3PJ8lHSa+Rk
4sL7FDaOl1UWTTXpQN1pJLpspk0dLlzGYjBKKegPdEWjvjb5dONS7JdY/gCt lZ6c8bG6qfS4
omCMTUmv1TsCveEEI7o3KC2KyTl6g8uAwS53BT7iwodJz/g76wNB1o1+DVfi KpY93d/U3FLd
VFOnsPIkNmxJuvgKfFTDNbicoWlBNp/n4VoqNAUqqcmNfbhOwwory2/QcAne m49P4FMufJKN
9aQe1HAAN3GmCYSyZ6JU5RIkn9FwM25JkWci8UdCButjs66bleNk5GVsrxLU n9XwOdzGzi0D
WaaqylEbwxiapFHswxc0fFHgTe08QVceDrJ5WFwZ1nJlnOtufBnXuXAHm8iE LQkLhzTchbsZ
KSNZqIl290QjDO94c7Q3FmQ4rZsoI9miJjsDGg7jiMK8NDsjTayfIFMjLFis 3afhfjnOvM4x
beRhkK89JzBYEUztqYybm9wYEjofVFjzluBw3jQ38RXiZAnI2SSD+1TyVkdC Vuy4U3007sIx
hTmSAHu7w754YK+vufrsjDb7dQ6qZrQbUZ9/a+qBpNE3NXwQl0uUHNfwiFRJ hxU2Q/iOhkdl
oZAJ0xKtDoebE9HghfbBXHhcoXScapiqSJJ6+XgMT2j4Hr7PKmyOr2bn6Rsl Cd+WlpKLH0or
5LyaF0106bE6mQhWTrC2siZ1pGf9qcO91JoC5KRPaXhaTprfnp4OxObPNDwp NkvGHBvsdwhp
67+QzXERe17Dz2XacOhb9AQHplL/rl1lI4kTb76gYRmWy91vNZyOd4j47zX8 Er/iy1JMj0fD
fQxBxfEsT47W0t+ji95m0VtUOsobWBmHyb/yzTt7LhIT18nH3zQ0oknK8Ksa XpNwcQbDeiDm
wj8YOaaYGQ41UQ6BQfGB7P2Xhn/jPzKNhUIMLE5SdiRk7TVLci5e1/Bn/IWg Obi3BsK9+om/
N6T8MknfEYnLWRylfsn7XJWr8bhKnvjjzcNPqPNF5dJUnrSDSXzZ5bs3USm3 pvLlbdhlxOu6
exL9omCKphzKyZOqaZqaLk/zqGpbLLpXHqPdpWaSupFjY0eHHnOrAlyQp4po pKTUCK0v4YKa
w0FUzeUb9QTnT1FUJYLzRbCYVaG0Zrx9aKc5upoNnzVhrI0sH1ZBqjfM33Ks HzoqZTcW0625
/HPys1h+cQHgkF9NzKsb+bzO5DcNU7hrKr+V8Sr/nOpeTDvMmxzM4KebV2A9 hVahwFwVBTNT
Ylu4IoIzPIMo9BzBtPtR5FH3Y05aRQEFgFZ+1tJuE6bzhUVUaZYg5mG+qbQY C2yllbzKM8cR
LBxI6Zlkrp2fIeuwZZVkjC3rs2WdnvtQlC18UYawMyXMacQWjpOSXF6Xi3Cj xyuHSaL0AC9H
Ud7mceSWy5NBVCaxKn3CIioDZz4n3gfpVDNwGRG93zRWYim0jcndGhoRz5Rg Le+EPma5DWCz
TWcBzaxz3EpvDBDAxmOoTh/FcskNvN6YcZyC1HE4ZtvaGsiQWHd7vI7yJOoa y7O13EIEt2bg
dKdwuuHHWaZmN95FTYKLVcLW/JJN1H4v4W29HdNsvOd5j6PN430AzQew8Cja 2o7inLaC8wZx
PvcFkggl0TUI42HVKHLHMdlDXLsbKTXN63EUVJcPIeIEmedyorH8OJZypU/h IOZZjphpO8Lh
9WZ7YS2DErgThTjEWLqLrN6NdbiHnA6gnuPJWTjCKLwX5+E+7EaSwTBIHz2Q cfr9qdPvt0+/
jmE/fHqOqvbpm5hRwkwxTz3nERPTpW0F+zzOSdTI2JflNNNTTd2PUeZxzMYT GT4rTvmM/dvW
fS2lxDObj+BDSVzd4C34WBIf5+Gv9w7hxhzs9JoPPp3Erd4kPl9wexJfspbu TOIeLt1bkEzi
AW/a/hIz65+i/afJ0DOYw1a0BM/Ci+cYi89jE14wMRVZdm1MLp79KL5iZtNX KZeDh8w0ysHD
+JqJtIVPRKKQ4L7RIGCS+JYASOLb2dn/MuP9FZ76VZaO1zKsFdrWnJiWssae bnNxG2VFur74
DtMrG02urCI0W+rEcBBVMIiaPF6mCe8SkjLXH8Nj3oohfDcXAx5vccUgfpBm ZB7PAbxOJv6H
RVS4nN3Fp3KxSTlNbB7Laioa6vEj/Ni0XI+fYINpv96MC6mxT6bwXmnjXWvj rcjCu9CjsvH9
NIXvmTQ+kzM1FXPYrRaxHVSqwgxca1O41qZwrU3hWpvCxYHDxmWQX3lWIVlq QcNSG5uyPbhV
0o8h9qxTAA3iuawAVgsIZxFWqsUZ7qtIQakwzYr7OKjYZq+y6Vg937LpsSyb kvPNpJNKm8Sv
hZDfmKwMeOYXLxjE79LGzdqqPChW5VisKrFCncIOfmoGH6tTIFabLCjz7g/4 o2loNf7EO+GD
44cN7B5+l5xstIHVZQFbZnJVfgwvJvHSYbmpTuLlwwJwCK8oyA0X/z6EfzIh D3vmlw/iv+mQ
97BkQlUR8kYsU5sYXptRoarpxhqcrmpRp+pQr7agQZ2ZUXwaU8doTB2jEW8w RFl8lPnfBH+N
XSDW2+BXZ4EXx5ZJJzaxqxOAE+qgykkjXcGRAGobkW7HUtVMtDtQplrhUWdj tWrDaeocrFPn
Znh8fQrlehulkuHKxjZgYwvb2PQsbDX8ayK0R8wGV3QcLsdBzM09iFlHzBZS lFSTDsDFBYfj
kATFcTgdh3IPSUE9zhmDlyE1WeEme5mn0Q5lhUqIp+lArerCVrWb41Y4A304 hT48jF5+Z7TR
X0o/yK41nqSaegB5nkE1Y+CoKmiTm0FV2OCdqWYl1eydXgsqb6aXJdW8nd6k WpBVXVQvNLWH
KbMXJaqfpF6MU9QlGVDW2FDmYIFayMQSIiUhctTi/wNQSwcINz2OViMMAAAS HAAAUEsDBBQA
CAAIAEkGVzUAAAAAAAAAAAAAAAA8AAAAY29tLnBhcmVpcy50cmFkaW5nL2Jp bi9jb20vcGFy
ZWlzL3RyYWRpbmcvSWRlbnRpZmlhYmxlLmNsYXNzZY+9CsJQDEa/1J9qVVDQ UVzr4sXZWUEQ
HAT3axvLldaW26sP5+AD+FBiSgcFh0DI+UhOXu/HE8ASAx8eYRblmSq0ZVMq Z3Vsronaxnx1
5mz0KWUfTcLwou9apVrY/nThyPloE6a5TRRHqSlKVpydpc8tq3UdIbQSdtuY MA7nu++Cg7Ny
YyW4rPEk/KfzIyE45Dcb8cakTBj9Oi2qvAgQGlIt+cYTSR8dVLJdBDIh9Ko5 +h9QSwcIRUfF
SbMAAADwAAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAA2AAAAY29tLnBh cmVpcy50cmFk
aW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcvU3lzdGVtLmNsYXNzvZddcBPX Fcf/iyRk7CUQ
A8bEDhgIQVoZBCltk5gEE9tQteKj2Ni1E5qupWt7yUprViuDG5q0SdOkCWmS foY0eeww7fBg
aCKXZCaTTDrQSR8z6bTTPnY6nb52+vXS6f/sLrIiyxT6UM9Ie3X3nnN+53/P Pbv+8N9vvwtg
N96IY5mGDTmnkJ42XWWV0p5r5q3iZHpwtuSpQhxRDXc77mRa5WxruqTSqjDB seOqtFWYttMD
R8ZPqpyX4TiO5Ro2NXCVyauiZ01Y5ritNLRk+h8d6B84sP94dkhDa/akOWOm bVNCei6X92hY
ZuU1xBmQdiUNW7P1AAxScIrpsmeRIGuVPBo17eWCouU9qCGSSA5riPY5ebUC GlbriKNJw6qs
VVSHy4Vx5Q4FLK1ZJ2faw6brs4WTy/f6bpoRwToda7BSfKzXsQJNMtqgoxkt dO9NWYTryC4p
HqF0NeiZnpXrs80SF3clkotyCcQc8Ff0rMAmbI6jS4PRwO1QcD1q5h4zJ9Vd WctTrmmXdGzB
VnIPjg4ODRzSsPHGMTTEJpWXocRridNA/lgpuL0usfhucriZGiR1GEhxhTrs yM7mmKNTPKZO
lS1X5f0NGItjh4buG5VOra0UUDO6kRbFd2k4mlgiiUyRSRdNOyy8nkymBjKc WzwTYN+j41PY
w9IKsGc1pBeHCWur6K9I1zL2SFXFiuq0iBNz7Lxcm6ll3/VK3dZgfxfXahz3 a3igcXrBsoC6
zyl6plUs0PeI5U1lijPKLSnfRxx7Gx/bAKUZ9+FBUXIfA9XuYlABNy2tJNyi wsD780z33E3v
yy0I2zfFNHuWlG5JC9nTPh2fxb1xDGhI3EDSKp6o14J+HNTxOWTYNsbNkpXz c5tJNCil/0cW
EXxBRy/2k8bxppQ7UCTN9psUWsOKCWV6ZVdl+jVoTClaKE2yGHffMomG265v 9jFVcGaUCDWk
47gI1eILFcwL8oiOY4IcVQeVxwaZyIyNJRcLKHv0sI67sE2MTuj4EkZ5Al1V cuwZdlttjFlL
YkOz00q8DYq3tkSDY50cjoPCrK5vShJiQsfd2N6CKZyMw9Kw+b8eQx2PYSXP cc5WphtHge3Q
d+yv6HNsmyGpjLh0dEzjFDusmc/vt22evLBS6tb2JMckSTZkE+NMi61i2LTL 6pOPueq+LVfH
iyXJNprISIOKYFbHDE7LnUxp8Pod+szhazqewJNy51SZLb+uOV8XaExov6Hj KWnOcas0UJj2
ZsXxN3V8FY8TyXMWNHtWx3OysInRjrrOGX/l8zqewbY4znET6oV+qDwxodxm vIDvSHPZ3oSX
SdSVsPL3d8nsd3V8D98XnaanldRwd6MnyKKpwG2PePihePgRn6qJvhuue55B WEJlmxq1L7WQ
zXnQKbs5dcDyXzyCp/JOWY3NzD/CT4zfnfJ6wNehqDzi/Ssf8Lyu5C+d3zwW /JXkVf5i2s+x
6hIHy3A7v5t5Be6hURKt/qw4WFM1O8gZMbzdmMda4zJWvYU2Q3sL7QsuWmkA HOb3XsY9gNU4
4rvSA0PcgQ7faSfuDJ3u5FXuRS9j41zVz3J/bqTGNhraanL+Qtt0aBsz3kRb vbFVYxyrGvNk
hcYlShLhdZsYHzJSkkwFifO8vIPuUSMa6ZY789hZwe6FDNvoDCjze4aCnebc GRLN+sG6Aodh
MBl9mkFkZ7rwGY5EPnb4EOAw90rgOhmm/RrWMOx9o609RjQ6jweoqkwvJHWb 7/scbV7EerxU
k1xnNTn23dD349RLdiLV+TOfZIt/P/isYZoPvYf+1I4rOBDBnJHq3DGPz9eH ehVr8Rq24nU/
lBG4q6aWQhaHfHcpJnLEr5UUjuKLfikeu2WQwSrIcD3ITwhygSA//R9A2KFD kCdCEKMjANmM
4E8s1/u7UMHYnBDNGR2dd87jkQWOoKovox1vsm4rTOIXNSxGlcXwCTR/9GU8 6rMY+ApHwsJG
GrK8xt+SWW/Icm8dS5fR/R5yFahLwnMFk3yH5oCT9hUUl2HkktHRPQ93oSq3 +Kf9fRJ+wFr7
JbO7ysjX6PlXfH/6EPvw65oK7a0S91aJe+GxqqVC2bZDzrP8LTnsCjmTdZyb pAl8ApNg8ziz
wLWR9Qp8RK6P+e/Abxj/t/TyO7L9nqf3Dz5TWxCjyrQrZNKkz4ckb4QkJ0KS 4TqSfQS5hlY5
sFcRj17AhsgFrOOkzFRw9jzinIhGL8qhusoOxssVfF3jVsSiFyMXBfvpi3Ub /kdi/4nC/JmN
6C81qCeqqCeqqM9Um9JZSiyr9lCUb51HE5vlt+fewQujMpjHi9lU60sVvDKS CtA4WJ2s4Acj
qQpeXSi5O9jFgL/yiP+NFH+neP9AAv+kaP+qIdkTkrSzCZxnLkLyY9/H6/8B UEsHCG1pJ2D8
BgAAGA8AAFBLAwQUAAgACABJBlc1AAAAAAAAAAAAAAAAPgAAAGNvbS5wYXJl aXMudHJhZGlu
Zy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL1RyYWRpbmdGYWN0b3J5LmNsYXNz jVVtUxtVFH4u
UDZZVmxDKbS0NFAqSRDWvvhGsBVCaCMxpRCjtNW6bC5h6SYbN0uV/+D/cMZP EWfAyoz2kx/8
UY7n3l0SGhJoGPa+nfOc57zcc//978+/ANxCTUEXw5jplPWq4XKrpnuuUbQq JT3vj0uG6Tnu
roIehknHLenctK1qjeu8vElzx+W6Va7aejoQzNCCIcwzubX8fC6VZriRPRM9 yRCaI9yK5d1j
6I7FCww9KafIVTD0adDwDm2IY4absfhbAIZJ8V0N59BLY9aq8NxOeYO7eWPD 5gyRrGMadsFw
LbGWm2EMYFDBxY5eplcM84VR4hOrvGTVPHdXwyUMEfGmp/HsW6omQ7jMEN3y vOqsrusn3ZmR
in3EaUTDVVyjKJS4dxRjhrux7Lbx0tBtg1xf81xSSXa03ozJdYwpiDLE2ktW 7Z2SVdHTYrEi
58LHcYZEB+iTCkmVjExouIn3KJG2U2IYPM710cY2N71kvCAyG9MQR4ihd05m XsEUw0BTNv2T
yaue5VQYLnhb/M0Mixprng9m26gRl27EqHC8LatGVkyXGx5l/36sU6RStlGr dQ5kQL4Pd/GR
gg8Zrp6Go+FjfELVR4mTa2vT4m5mUdZ3Rrg/qyGJOQbNJ5ayLV6hAr/WvsD9 46RQvKfhPj5v
KK7t1jxe7qjoHycVLDCMN8OUsW1eMux5t7RTJuBG1BQQxaHW6lrYsewid0NY olLMb/GoKVyK
TqpI4aFIY6Yl0UdFWRDRWtaQxZcMCsUiZ5QpBxeJ6wlhAfZIwwoeU7aMapVX igzTbUu9Az+6
WGsMI5NRqxatOF7UiL40bKvos5UJEDa+0lAQdEKe42urmMdDssllohhGTy8Q BU8ZLnfMkYon
oux6zSChI6ekU8H37aH8rKl4LqFqQYrbQgUJpltC4Q1uSdBxzmqXgZisqpKG LVhBp2noj8fO
6mrkw4tTn5AGlkrIzcUir7rcpPothrENRzTr6umvxZFBUl5zdlyTL1mimw+8 2RlmRG1gjDzq
pieOoiteAZqF6E+hf+octJqiUfyUP6D+jv7faNqF8/RVaQRGSWUIF+QuSIFe oEDxR9oRqpN7
iESGX+FKF16DLSf+wflE/Rf0Le9hNLGPG4dg6weYrEvhAQJLBAauSDYx9NOt idDuEKYxjBnq
mx9Ig5dIrp9MvS/lhonzNJ0KT+IN9ndoFLjnEgfQW7nPoocai4DSfCEC7pUA t3A7APiZdoVs
duoV7jD8KkIxAf/XJUn66+vkyqd1+nxWP8T8+iFS65H0AR6Q2hcM+8hFVumz j/wBvv67wSNC
DEAXLYpFegnS5OSDhmtkM+AjZt9gXbpCjTBgtkAyQko9xBMK4LPsVL3Fv8cU htVjeGqAF6LV
t/hO4lF/PIn3nPCMk3hPSfNZB7wNmBKvCB7g3Q5CH6KgbL7GdhOtV+7zY5EP BUhh2LTfhbL0
Oixj65dfzx4qrQhOo+4YfpAz939QSwcIqibAcVUEAACwCQAAUEsDBBQACAAI AEkGVzUAAAAA
AAAAAAAAAABHAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlz L3RyYWRpbmcv
VHJhZGluZ1BhY2thZ2UkTGl0ZXJhbHMuY2xhc3OFU8tu00AUPZOWpA7Tpg9e 5VHaNEBbaE15
lEdL2zRJJUsmRU0UiZXlONPIxbEr20VC4qcgEgsWfABrtixZsmYH3BknFJDa WrLvmZlzzz1z
x/P558dPAJZRziDFsOAEHf3ADoUb6XFot1y/rdeT+MJ2XtltUTDdWIS2F2Uw yDC6b7+2dc8m
2k5zXzgxQ7pkGpVqnWHKDMK2LhzPPYiELjp7hINQ6JWSZ0fRKsNIwrSs2sta vfKcIX9cxq7Y
E6HwHUFZuX5Wo1It7+zWGLhRpglj2yhumRXy9PfQsozyCcLFOA7d5mEshdN9 G7kEWFZSiSoM
rVGq78brDANz8w2GwVLQEhomcD6Dcwwzp7aN4wIuMmjCqNbqxWqJfM6ap2at ZqnEJMdlXKHc
tohLnit8avL03PzJ3dXAcI3jDNJS4jrHNGaoNX8krNqbKBYdhsLxSkddl2qz HBkMSbUbHDel
2tiRWkP4rSCMJG+OQ0t4Cxy3pfEc8YwW0dw91256QrIWObKJN53jLpYZxv9j WUbrRHdHRyf1
7nOcBZd6DzlW+u1KNinXH3MMJ/Wecqz23SfrVrIJ5f4ZxwiGyLPp+qJ62GmK sC7dkD8zcGyv
YYfKXW8yWwsOQ0dsu3Iw8e/hLcm7If9O3xehOhUR0a/Uvz9pRuUG6O5lMCnP idCk7LCKWi9m
e/O0NxWHe+MRtU5qyGGU4hiN3lKUz+Z7jH/ApS6uKjDVRV6BQhe3FJjv4o4C S13cU+BBF48U
eNLF2jvSSGGdvnlZhX2Fxr5hnH2nrv5Agf3CYkrDSmoMG+wLNhRbvpvqW8QW xSzk7iZQSmu/
AVBLBwiHC4QibAIAAGIEAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAD4A AABjb20ucGFy
ZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy9UcmFkaW5nUGFj a2FnZS5jbGFz
c7VYCXhU1RX+b2aSmSQ3BCZKRZF9SQbIVKVICVjDZEKnhIQmIUhsDS+Tl+Rh MhNn3oDBttZa
sS64daV21xZsbYUgA0FFcGurtXu1K3bfN7vZWqs95743My+TmST2+5rvm3fv Ofecc89+782T
Lx8/AeA8ITwoEpgfiQ0GhrS4biQCZlzrMaJ9gXZr3KxFLtf6dA/cAktj8b6A HhkwhhJ6QB/s
pXksrgeMwaGBQMgmDBMgUKw3128KCfiadmg7tcCARgLbzDjJqxOoCMaiCVOL mh3aQFL3olTA
Y+9KM725rWtLa9gLKTCv3zSH1gQCgfH61aq9BcqYfnNrqDF8iReVtCOR1lqk tRmhpXq4ua29
vjlIKi1smtRY0lGGG0LN7eHGcP36JmISYRe5SwhMd+K7usINjIfA2WPwjaH6 9i2toa5gy5bm
doGSYFM4xJMya8J8AtPSQNu2tvbQJoHKNKIj1NzQ0trGoik4Z9joMUJ5zUWS 07xl1sSSXJkG
LM42kmFjchSTFEs9aoaCA1oiITCnKX+ArXXyis/oIXKj19C6B/Q0l0wMJ0x9 MA16jUQ4aph6
D3mtk1xvJIJxXVNwhbVkaAPGboa9a2krQlwk4Kqu6RBwB2M9ehm5MyDxWspO uHlZYHF1zRSi
VkqMF0hMxwyevU5iKarJGU1GVG9ODnbr8XZWm5MyFtEGOrS4MsNGlqxVmpRi DdZ6UDdhTTRq
ETMWH+at1k2cUDZlXRlceIPEalxMilWPL4pCjk/z13SwSeslFmIRzxokFluz Rokl1uyNEjWo
5tmbJPxsutvsNxKl2IQWD5oLlm+6che16n1GwmS7NuPNFJ1szdQU0i+Xta6c dmuTaMcWgfI+
3UxTCKzMY/Zkcus4F7ay35aXYhsu9YAyakEBHv7afByZtwgsKiTeQUoab8Nl El3YTkmg20k8
r7qgalYteNEtsKRwewoMa/2xmNWkPKBcX1yIJrCNv7Y2pYigl7WnprU0X16N Z1E+MiR2YLnA
mRFVa/YS9VmT6jVRRlINJhuUiDLZLCNThnlIB5n0Cok4k5b0xnV9N8Vvhtmv jy04qi3COXWh
cqeYB1VToV6ZmXe1qRZBESns11a9V4/r0QhHZBhXebBbYPZEMZB4G94uMJOz jPIpGTGTcW2g
kexPxvWE1TRy+cmjg7FoIGkadGI1UcrSZlfjGg/eSQU/KbHEu3At9SrakVxd Ha5xZHRL9w49
YtZ5cB1lz2QmkjezvunQoz2xOClcSbiwo8FSp8rBdIV7JvRhvUl11Z00ddLj psJ6ZMiseKWD
MyMz77JUS1i4sb1ssm6cbXkCt0vcgfcKVHGM7IWwOvvZBwsKG+IU8n6JD+CD fFip3E6fM/PZ
/xPWKDPvk/gw7qRctJkdIVhQPTF7uKaDJXxU4mNOCRnn8eInJD6JT9GtJaGb zdqgzmmRp80p
QXdLfJppy5k2sTmu9xpXMn6/xAHGexWerj6M/KzE5zi7K1V2J7uHrAJLcLp+ XuILuI/yUOvp
ydnQzsKaTq6hQxIjLGOaJWOIDsDhIT3B4u+XuB7bPUhRL8gTSiv8Xhzju4ua M9NxiQfwIN01
uHukw9AziRcdyo1D2O7p7OycQiRPSOzELp6dlLgZ23n2iMRe7PLiMb4Jqcxl 7BMSX8SXyG6l
pyPiTxXUNdt8JlSEylCPFyRxCBl/wI/DhMPjXNOZ/ptCk2RDn5TYwy6J4CsS T/MB5qVQq4bM
yK9JfB27rBxSyK50XL9JGbvTajtefJt6qJXbDXqvlhww081UZfgzEs/iu3R3 o2QLtVAOaaYR
iwoMTxb3Kfgxj08KWp7Zmo7e7wucY2mszMroWx/tadP1Hlb7h6z2jwR2/T/U nIKSHjwnMDdP
aTnbuRc/4ZeGA8Oq/0ziPbiB73G/kPgl32Ok7riw8H3l1xK/wW+pEu2zTz1y FhZupw2aqXHt
k+9+L1BkKBf9UeJP+HO6TBxnwoGCPsueL/+T315VEUzpkPtL/v6V7QV/k0hi uxf/oIy3Hjuq
//1T4l94kWy30qhVT8SScW4R617FLTVucwXS7HX8DlOzRoOP76qx96ValswB j0b1uDJWT3jw
ioB/0rfNoiZ6UdHtht9X6SnmkyH8DpyJWShGCUEefjHCS3CZAy4nuMIBTyOY Hkk0nwUfqjL4
Mwg+0wGz3NfkrJ+Vsz4rBz47h/4cBzyb4HMd8ByC5+asz8uRNz9H3oIx9EX8 HlLzxfa4RI1l
/PRTcI09+tVYQb5ZhuUkYQVBF9DIf+XHUHsY57sOY+UhRbyKvtOUay8mt50m cfNxoVrh3+qM
AJ1oWMRCv698BK8/iov84gjq+RPkT8jvOoIN/AlnBc9R2j+DUqRok4fInsdw lrgK54p9ZN2z
aiNpicVGFaVSfgvbWz5HUliNa0ewch9mjKDJVz6K1iKchDiYhU6BpE3PwvtR 9gDEtqPoILqN
brJ0BJeM4q30umIizWaK2EyazVQyAv0kIk3+FPqXpXA5jQM0xmgc8h/MmFRL KQa8QAF6EWvx
EnntFYRFEQZFMa4QJUiKUgyLMrqLVOAaUalMnEm8a7EBCWXiIMEm+shIwfVq GxtQMFDsvx/1
2e04kyFmOzxVbHtK8BXBZl5H1LxWxcyjuJJqZRTvYEe9O1dUjUNUVUbUnglE uQuJWpVX1PV5
TQrmMq/PaxIdBnn0CI4x6cZcUS159bg5rx6hXOZL8+qxN68/QhO7tj+vHrfg VlvU+bYeXkqp
205iTS5/wsHvzfDvyJTgnXYJbiJVNuyD+5DfzSXnd6XwPi5Fjpg7hQ+pSbGa uNVSkDFBIvuI
31+sMCHGhJg4W6x+qn2I6+AVe1AhbsBMcSPmiptQLfbiPHEL1ojbEBS3o0nc 4VB0U0bRaFpR
cZRaLRWuuJA2CacVDft93hQ+7vdNS+EuaiIpfCZbfnbh3bNsFPcWYauVewfp tEjhcAYVykUx
me+I76jLRZaMEpzCQ/R7mH6nfI8Kl9t3xO1yu2iZCR5XBF+mmn6Kfl/1fUO4 inxHaNHtICCJ
TOD7FiO+YyGE73sp/EDNg77Tvh+73Zntfkq4n4/iV/R8/R3vd5pFWdL+oBhC vud9jzr0O0W/
v7Kevr/z9s+P3Z698sLWbEhaqc1A3EUhuZtCsh9V4gBmiXsoLPdihbgPq8UI NorDuEykECW3
3yqOkYuO45R4EE+LE3QpfBgvi1NimnhEBMTjYpV4ItOQKDx26FZQu7IaUhH+ rfZ+Cf9RJ4vA
y/yP4JLS/wJQSwcIBLkHs4UJAABEFwAAUEsDBBQACAAIAEkGVzUAAAAAAAAA AAAAAABMAAAA
Y29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcvdXRp bC9UcmFkaW5n
QWRhcHRlckZhY3RvcnkkMS5jbGFzc5VUf2/SUBQ9bzDYsApuc7pNnVOmwNwK W0xMWEwM2eIM
UxOW/f8oj/GW0pL2oeFbaeKPxD/8AH4o431tQwi2EkJo77vv3HPPPX3t7z8/ fwGo4SiLBQbT
cvvmgHtC+qbyeEc6V+ZQSdu8CBevO3yghHfKLeV6o2ItizTD7oyi1ieprB5D RvWkX6xSl+Zc
bepUeiwdqV4xHJbmrC1fMqQbbkcsg+GGgUVkckjhpoEsbjGkShqQb0pHvBv2 28K74G1bMKw0
XYvbl9yTeh0l03oAhtp8Eoo1GiBncV80bCkcRfPHDhHu1svNa/6Rmzan1Pv2 tbBUPYd13Mvi
LsP+XJ0NbGCTYdXyBFdR9wjBUC6Vm653ZQrLlgNfmKLf1U+/7zqm4yrZHZkR VNvvBkIYtv4j
nKGghzzr0EJ2ZWjZi9hRJzFJAz8ysKPVb4TqJ0vGM+zMJI+cb418JfpJzoe7 SUKeGng2YWMI
HkuIdSQipAPXEV0+tFWDNDAclf5xXFiuJ8yTqF2CgucG9rWCtVBBhB5L2J7B Sh603KFniVOp
H8lm7Fk50J0ZjDPHEV7D5r4v6KjnTxzLdn1CnwvVczuo0luUog8GKxT0q0TR Iv2zWKL8MkUv
sUA/IFfZ+0aXHzC+0GoBeZ0LdhhVvEGBIoNinb2NlSC/irWI5ZjuGrtU+Yrc d9z5PObIBDVv
g/r1EBPV62gL92mf4QEexjNtTzOdJzI9DpieoBjPtDvN9CGRqRQwlVGJZ9qb ZmolMh0E7psB
vkofbe0eC2pAqEO6pqkOfwFQSwcIgFbl7k0CAADVBQAAUEsDBBQACAAIAEkG VzUAAAAAAAAA
AAAAAABKAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3Ry YWRpbmcvdXRp
bC9UcmFkaW5nQWRhcHRlckZhY3RvcnkuY2xhc3OVVdtOE1EUXaeUDi0DRW7K TeUmvQAjIAoW
UaygJA1q2pCoLw7TAwxOZ5rpoOHBL/ADjD/gkw+Kt6CJwScTP8q458JIaZGS Jue611r7rNnn
9Pefbz8ATOCOgADDmGIUpKJscrUkWaacV/UNadtSNSnnThbyctHi5pKsWIa5 IyDIMG2YGxJX
NLVY4hIvrEtEUTB0STcsdX1HUgtFTSqHLdMSg1gw8lx7ICvP5A3OMJipIu2p ekEphkYHlH2h
Wsomw0g1zOF03UDCheZUXbXmGepi8VWGYJpoIqhDk4gwIgKiDNKpjj40EUEz ztjwVobJ2EmZ
lKNT8dUwGNpFCGiwR50i6hEK4xy6BXQx9J9ohogehBjCfHklm1tYSS8yRDOq zle2C2vczMlr
GpnamjEUWVuVTdWee4tBa1Mt0XlPmTJDi1ryJkuGmdspEldHLLMlP5clTSbw /bUtrlip+GMB
gwx9R+uCK4bJpUU3qhEDGBZxCSP0cXhak0uU0sVYPHMMyolINSKOpIAEQ+// 4kSMYoyKZYNb
i36BDRxP/q++QoaTne1cxbkYmhSTyxb3jGF4GKtgLC/+FbtTuZmqlC4P9ChT EUxhWsAVhuGa
SlvEVVxjaMgbB3diqjKnMuMplYqTCZglwZoyJIss2SRjGWo+PEOba1xaU7lu +UzxKl+kui0M
XS7Dcp4IiNWuZJ/HY8/ulCxe8Ffb3VXv2P5yJGtsmwpfUu2r0F211Mdtg+iB WtZ1bjoFxUvo
p1taRy9lAM5VpVHQvrzUC7RDjwi1jTR7QuuM+r7EV4iJ72h+RIOWz2jbRccv hHdx9iM6PjhE
vdR2O1RxAt0l2ntoQQKdSNLeGPpoR3TJcB4XqKcr4iRiC+nEEKA+kSTmt6gP vkv+xMAb9CT3
MbCHIYY9xBgONuvo56t2khYwQ6nPUuopUp1DDPOOYqfL6inao3FIpMlwmf4m XO20px1NfEKb
rfcFk/uYee8LhJy0nx4ijPqEUVwnSZtwDjc8wlFnTmh2lMM4ZEPAt2G+BuTL qsibNSBfVUXe
qgH5ugoygAWnvU22wamTZseH1r9QSwcI5bihzCEDAAB8BwAAUEsDBBQACAAI AEkGVzUAAAAA
AAAAAAAAAABCAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlz L3RyYWRpbmcv
dXRpbC9UcmFkaW5nU3dpdGNoLmNsYXNznVXfUxtVFP5ukrIkrIWi/YFQKCI2 hB/pD1q1oS00
TUtsGlqDqFXaLpsLLM2vSZY6vDmOPvHgsy8dn3TGGWewzuDgg9O3zvhHOX73 7oJQN2SUmeye
vffc73znO+ce/vzr9z8AnIc0EBIYtqvlZM2qS6eRdOtW0amsJNddp5Sc9z4K XziuvWogItC1
Zj21kiWLHnNLa9J2BcxytShL9yz7ibUiBYZyAWg+kO+UEmibciqOe00gHB9Z EIikiRFDGB0m
DLRHIfCaiSNoi6ITxwx0CQy2hDXRjTaBqMzmC/Mz+XRGoDPnVGR+vbwk6/PW Uon0unNV2yot
WHVHffuLEXfVaQicDaL+byFIv71Y9WyBi/Fctb6SlHbJqTVkUpaXaVfrMpnx BEqN5F7VLNWB
N9FnoFfg9KFnTZxGP8WS6ZLVIMEz8ZFmwbRHKkbhzpg4iUGB+02Jeb7/nbZA zF2Vmd3CD7RA
6MAwzhp4R6DvMCIm4hghtExXK67FetVZ7OaJ7gMfNTGGcVZ5Rboayll2ZD17 U3dVVmmRVFqc
E5iMZ/9PlYZxwcRFTAocZYhMYb3GPtqoSZZiOIAhu6dcrXgdk8k5DQVxGe8Z eJcAGl5vqR0T
7+OKgOE0MuWau6EZP1CMp0xcxSmBjqJcttZLbtpqSIVy3cQ0ZuhHIgLH49nA +kRVffxm6T+8
/Awh9yfUlTvIMGXgtkBPwI1IlxxZcRXZrIkPcIe1s8nSW6bm8aBr5O0GyayA 7prIY44kFFC2
SE+W0rublwLh9vsEgRq4zwZtcdBAITjDwkbDlWVF7CMTC/jYz9Bbbpahtxt8 b0z7QHuKLC+1
7evVe4hcdKvLBttADa4gXOeAVoMtpSJgw88iMK6fBN2q/i2PFarrdVvecvT0 PDAIJxQjDFKm
MP+bkI2a2LTaaRv6GeXXbb4F38cSvyH2HOZLRJ/j6K8wf+FiCK/z2Y0InxN8 JhHDOXThAt7g
iukdxHGc0AFO4pQPOs2QIeWRGN1Bj8DoNga29vDa9LkpjXHC8/MxlPUWhrgf UVPSR/ueaIrB
NMHeFiDJH9CpkBMCY9uY2KJ5XiA/voNLAt+hI8HV1I/oToyHd3AthBcYHjvA oJ8CqNRNzJLz
HQzgLsdcnrnN4TpymlnCi7nHbBo3kNbMpzXHEE8N4iYymh3nmMdWzHDnCL02 e3/S576G96fy
7OXvBn+LYy9wK58Y38bslUhP5CViys7t2oq+srfodi/fdOtDvTV/KIK2/kn8 BosHfIY+LJL8
Qyb9CJN4zJQsJlekHJISLNNjhbtrsPGEzxKeooyvUME3qGlxPteF2dwTZxOf 4FMtzqYvziDf
D4gTZoxe+i9SpFl6P2TEMGN0+ms2/R4zephxdv2Emlt+8S/zraQLiVcb6Mt9 DRTaYxLCEqOq
nubIaonxbVOMRxqD06UlxrOmGJbGuLp3LZpj/NwUY0hj2Pqr+DdQSwcIVZLE AkYEAAAaCgAA
UEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABAAAAAY29tLnBhcmVpcy50cmFk aW5nL2Jpbi9j
b20vcGFyZWlzL3RyYWRpbmcvdXRpbC9UcmFkaW5nVXRpbC5jbGFzc7VVS3Mb RRD+Wk8/NrZj
Rw7CtmzHBCQrzobwCJGEQDFxCBEyYUUofBtJE2dTa8nsI4UvXPkN5k7lGi6k BFVUOMCBc/5B
/gfQM6sIx7bspCrRVu30TPd0f1/PN6u///n1dwBvo55EhLDU7GyZ28KVtmf6 rmjZ7U0z8G3H
rIeTr9hOIkaYuCvuCdMR7F9v3JVNn5Ao2W3bLxOi2dwtQmy105IjiGLYQBwJ wnjVbstasNWQ
bl00HEmYrHaawrklXFvNe4sx/47tEc5WnwNKkWB40uHyFq+o3TJb1ch0ZNX2 /GK1426asunY
25405dZttjuuNK9WfN+1G4Evi9X9XIq5QZt6fsKwZW+2hR+4XPOH/TVL+WP2 l18JqlFMIZXE
KcLYs3gMTOM0Ycj2pSv8jkuYzub2YL7eW+cMacwk8TofzUGvgVnM8fm05Xd8 2qeeZtiLMIl5
wtyRKEeRwaKBM1jiVPKa5FTl7CBilu8GTW6ycNakbnbxkKJKY2cNvIm3WIPy 20A4LJ9U9pD+
bSh+OQPLyBOSd4RX01RYrxsMxuFOsbD364c9gg+FcOb4MyPE7wkn0NI+UJ5A NvftsL4TIrJD
mD9WdhHBYdPPXpud7adX5+KL67B/ga7sqESEynNfoFVHeF5xI3ewYd+X6oWD /Msv8ZoMqF2q
13lTEh8Spv73VFxX7Cj3CEoYVgL82EAFV5RcdCLCQnbg5QpLjeITrCVxlTB7 VJyBa/iUcML2
rGCbv3Pc0vXbhMWBCg+zK2VO4TMDN5SIo6LV4qNuOoTM0fsIJ+120wla0goa ekkyGWI1J1zp
BQ7rOXVoiwgjVidwm3LNVsKZ2PNNPa/isQjGAfWLssXfb34neWbySDzGlx9i 6Gc2Ihjhd0Iv
jvIDGGEAjyd4HMYYxjlqQsee1En+YCvBY3G5i0lC7T5yK128RniETCGWjuW7 WIigEE/H/8J4
On7uF7yxi0Q69oCjsoQf/31MDzQyVTqjU46xPY4Ul5nnIiuYxAVeu8wrClI5 LIdz7IG2zmsm
yrrAf34RznGRn3c4ZwozeBfvIaYzvc/eOC71aakcH2hal1Ho0ypqDE96tKzf UPrmIcq1kF4h
dh+X0rE+QabVxUeE/E84PbuL2Xxv3sVqBLswVtT8egRfqz2a7p8r++nOYAhz LJkMg5xnegus
uzncxNIeulafroUqPtfwLdSwzjCHWGlfsDfKBCqauKKb1cRDutMcFeZQdMP4 m1oMX2rK1n9Q
SwcIgMt2nqMDAAA6CAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAA7AAAA Y29tLnBhcmVp
cy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vWWFob28u Y2xhc3O9WWt0
VNUV/g6ZySTDLY/wkEeECEGSmTwEo5iHmhiCjiSAREKDoB1mbpKLk7lhZoIi WhSr1WqrolVB
EW2rWEs1oEzEVEXbYmtr3/VV+35p7bu/6+q3772ZDJNJTOhaZK0799xzz9n7 +/a3zz7nrrz+
0QsvAViCDzyYoDAvZHZX9gRjuhGvTMSCYSPaWbk92GWale3y64FL4Uwz1lmp hyJGT1yv1Ls7
2DZjeqXR3ROpbFq9eYseSgTY9iBXYX4We4GwHk0YHUZwc0RXmBhYflXT8qYV DeuaL1coaN4S
3BasjAQ5rjUR4/BahQlGWOE0Ixo2Qnq80ezuMaO0EG81e2MhWljWPDroQPaJ NDzRsdmq6/Tg
H5sdGcy5eXWMQNRIXKCQU1LapuBqNMN6PshBgwd5CpObjai+qrd7sx673OZa 0GyGgpG2YMzi
7nTm1llmvMjBaRpmYLLYmK0hH3nSmqvBi4nSOl2Dhk/QUaLLiCsUfQxcYtT0 1kQwYYQaI8G4
zCgpbc6uXZM1ojYfC7HIg2KFitFtrwmGrg526sXNRkKPBSNxDWdisYK7veGS 1auZRaO74cBO
PRFgyKcTURbB3XH79YyS4W9L27yMRbmGClRyhL7KlFwKkaYZXatv7TVioiUl 2eDBEoWy0ZI1
fa6krBdn4WzRoEphTckIJAJRco4GI06q1wYCaSCdvuE9NuxzNSzDeQoeG/Z2 hcrhbhj6bjNa
GbVGVKZjrJU8c0f1ayQ4bjMSlvscieVIa6OaAT7Z1TF/czBuhFpHsf5QyUka Hwfnxq6gQeLj
njER9bjIgwaGeJxTNTRiOVMoGA6PW58N1EP0GSliru54J1fiknHToV3ReyS7 WjRtBpfvCLmb
Pe3FeHwUmWtOVubSNg9WKZxzUrMnYg3WenCZwqIxLUQNreAOMkkPRLfpsbi+ Vu82txH9vjEv
5LRVaxeqU5Kma9CmYb1AnzgIvSEclmrRruF8XCCJfIWGjZjMTSdsxHuCiVAX eQ4te3v7Kh/r
Unc2sGkZy9u2ctcYtbaMnIL4kOjQerIhThpaCE5HPINExXhISJJ2KJSOeYZI 06XhKnxKIZ8q
NEYMZi335+wC2K9rZQePaOgGl+c0vdGMJkhPj63Qg4nemB5gwVEBsdyjYSti Ct6hMQpnjLxz
O8nrARHMHtE9gzQo92DHzqxBctCeAmWF7LUatuM6Hoz0iwbRDZG+c+wL91Tk YT7zcDB2c0cJ
HUfGh6I8b7Qo24eCGzXchF0ShEFiaUEoHVH5zCh48Rnc6sEtCsXZJ/QmDBZ/ aa5jS8NncRvT
zIg3RJnYCZPOGkaK+KCPj3ktZ67PKSwYqqOBSETvDEYaYp293WTcdG1I75Gg enAnj/SZh7uL
eo1IWI/l4Qv8ylirh3pjcWObXhSywyEGiihQUTASMa/Rw0UdZqzIiztwtxzZ /BLK3RruRSnr
ZMK0LcrrL2q4Hw/woB3s6dGjVqXMcqwc1uWAqRUTu724HXeLh4c0PIx9XGp2 xtqbzIqY2Z2m
WXg8Z4b/Z/ns19CLbfLl8JhsIVxIeWaiS481CcvFY8wb5mvHYBESU0/IRkpT RSMydGqWDP6q
hgMSDpd+sc5sP60ksGFD6fDTr4D9uoYSlErrGQ21qJPWIQ2bcKW0ntVgYIuY PKLhKXyNZ+SY
HjcjsoMrnqryBPvl23vkDKW3iq+ZJVkO3lLMv6EwJVNMcfGSBp+dJsc0rESz tF7VEIJV0b+l
4QZ8WgAc13AUL9AlF3xbMNKrn/hZmgpbrr4uGhckrpKArOQcfF/Dd/G6vAnE WwffbPBiAD/S
8GP8RN5s7eX3UsanTWr5iJGfaXgDPxBIb2p4Sz5y8mhuTcy8dru83u3BuyQ/ PFs7OvSYF+/g
7jz8ko6KSoxwTZF0/Fry/zf8FBpj2ouhWpn4O5n4e1a7ksZRx+2mO4rVGyHj WSMNZKmxz3Ur
DPnq9Vq7aoUMxhnkmsPLDRcK5dsZYCvfufPr17rz25f3meydhMkcPYVPpbzL n1s9i6mH2JiA
afz18g5+y7mwGNOtXjEwIzVtDXtk4kxfP6/DmHoEs3zqCObIT+GQnZmEBLRx bg1BLOfcVbSy
3rKp2RYwD/Mt60UWDbFewbu8cx3Ggr6UrVyr76q0uS5nrpJ14cytdOa6fc9h VubkrWmT3anJ
zGlncpyxyeF9kUxu8fmFVRJle8hxAGe1+1w5ZfKmH0uTOCeT5Q38/TQjtxNT cSOKuSWJsyLb
oONMWtV0IlIVMSZ5Vhy5lrOgn5OJ/r6s6HnAdSbvpfICpEomrxL0c2z0xTZ4 V7mfyGtcZa8h
f7ar5QC0stmuo7hwAtaXDfmaQ2/APlp6hGT2k8yj9PQYluLLlv8q20eKUBWa KK2yWitwMa24
SeMS9uVwxDQEcCmFUlIvHJyvOlHe6Begj+NC1SKN4yiQm89V0FJ2FKvdaPEf x2S/87yOzz5/
WRKfbCk7joXsYU07MMhwmqOPy+/PFKfCyv5n6LOPfA6Rz2GG/lkK9BwT/AiW IcnEfJ74juIK
vJAm2sYUx40ORy8lszkqKbtZRCvMFO2NrKLx6JtFtEJLtMITRHOPQ7Q3aekt gnybJN+hp3cp
2nsjiBZkMcgUbTP7ThSNpT2baIWDohXaohX63AX6CaLZzynROkcTzT2SaO/T 5wfk8xfy+ZCi
/JWi/Y2i/Z2i/YOi/Yui/Zui/WcE0WyO6aJxh3T41DsVTOBfnbufBbCPqMxj iA9F1aqCKhde
5UlTsSClIo8OjrVmRku8e33+XNK9pqUs08oU5KmpaTi9KZxe7MD1lmVvCic3 UsfyP5247/IT
3s4nMNnBu4lxbvf5n8fNezBvALe3D+CO9oLP9+MujrsnifuSeLAfe16mTJx3 HPk+4tqbUiee
rs4jo6mTO1ydc2UjUadjupqHQjUfy1QRqtUZqFcLsEItxKWqGG1qETapM7FF lWCrKsVNypfG
fleK/S6HfTWWpNjzIOaw/9Da0oAdhU9Zo2NW3GHZmMurltcV6cVjykeq3MpD LqVjaClnvehL
z9Mp/01/r/N9Z99ggPiw1+qOs/VIn89fWN6PR4eEtJJSLSXlKixU52CpOhd1 6jw0qmqsVTXY
qOoQUufDUBcgruotuj4bforuDnyJdVRZra8gam2sOyzisn+3pojfw3kys9oh flYG8QW8Sn3K
5qdsGioN9uNDsK3dSQUIeyVht8CnVmOJuiwNXnUKXnUKXnUKXnUKHg+qDjyD NuVduWSjjRAL
HXhyTZeYSpr5rWATVD+eHII0SQapDZilNmKxutKCMtM2mIJSbrmVysrDrOP2 QScqdXNtn2fb
ni2XMqtYoiJK0f1B0fVp+emTn8N9vrmFp/fjuYyiqTpRpAwsUlczMN08LJqo UlvTglOXQlRn
hURZrST6Lbx13Dn6reDwxOugPMRnQbTSQdmYgbIE8u8ioMZXdgwDSbx4SBot SbxsNfQkXrEa
8SS+ecg3t6wf386ojOo6gr4eJeoGfqvtpJo3Mhl3oUbdjFp1CxPyVixXt3Ed 3p625lamiKxM
EVmJ1/Ada83x2O3Af5jPQq3egV+dAX+xJQ6DL+c+C72yoCsLt7JB9+N7mZjv IeZ7Kfd9xH0/
ytUDqFB7cLbay4A/zPqxj/j3c195NC0d6lOY6x3MSs72DtJ+B6npIO3KQHox r7W8NhHoa1YB
mHUcHtcBzM45gBnslJ4kfrgHHna4XAftSuJ2Hcw5aBcNu8nsGWyS2E8PZmTQ kyT2FC5RB9Gq
nsaVqo8V4HAaCTNFwkyRuDd1YL2ecGVUFd38fA/yeKJ+u28A77RLox+/aPYX vJfEr9b7bbBs
TClN4rfr/Un8ITOXB6CpF7mqXsJ89TLDfIz5/EoaksEDwCx+JfwRf7KQ/Nmy 8f7/AFBLBwhW
HHfPYwsAAMccAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAEIAAABjb20u cGFyZWlzLnRy
YWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy95YWhvby9ZYWhvb0ZhY3Rv cnkuY2xhc3Od
Vm1XG0UUfoa3TZYVaSgvbRHTSksShLVv1hJs5SW0kUgpQRRtq8tmSJZusnGz 0Eb9G/4Gz/ET
4jlg5RztJz/4ozzemSxJDiEQm3PYnZm997nPvfPMXP75948/AVzHjwraGK6a Tl4vGi63Srrn
GhmrkNXLRs5x9HXxXDBMz3HLCjoYxhw3q3PTtoolrvP8Jo0dl+tWvmjrCd8w SROGIE8upVdn
luYS5JVqKUKcITBN2AXLu8fQHomuMXTMORmugqFbg4a3aEF8ZohGoi2CBsn5 bQ2d6KJ3yirw
pe38BndXjQ2bM4RSjmnYa4ZriblcDKIP/QrON802sWyYz40sH13hWavkuWUN Axgk8rWMo6kW
XeMBXGC4lvO84pSu681SmpTu3cTskoZhvEP1yHLvqOIMtyKpLWPH0G2DPNKe S47xphxqlXkX
lxWEGSInWxbt7axV0BNisizHItMrDLEm0I0OcZWCjGq4imu0pbaTZeiv5/po Y4ubXjy6JvY4
oiGKAEPXtNSAgnGGvppt4qXJi57lFGgjvRyv32Wht9rX/tQJTsSkHRESkJez ShTDdLnhkQLu
R5rVac42SqXmZfSpd+MWPlRwm2H4NBwNd/AREadtk3Nr0+Jucl7qPCmSn9IQ xzRtbIWYzI7h
ypk6jwvnexru4xMyr3NOFjKWyUtzTr7oFHjBK6WdbdekjO+eidnEVYaa1TAH 4j3QGCrNeYZh
olV4YR5XsEC0a/uVtG2eNewZN7udp8jV7VPwkGHwuMhnty07w90APqXCreZ4 2BS1DY+peICU
UNNnx/R2dDbWxLY90rCMxwwKbcqSkafSnCfuDcYCLK1hFZ+TbIxikRdklied uCb86JR/wXBp
LGyVwgXHCxvhHcO2MhW2UgkixrqGrwSdgOdUvFUkkKKYXCqGYeR0pSr4hmxO L72KZ+IQdJYr
8gqfJS4FlOvtN1KLClOEGi6fKsY7byhFBRZdsy3rTEVOkOktN8h1/H+ItXJ+ 5bJ/kbfSiXxT
eXqKGr6D61/fVQxxyk9vGJSvd2anruKphF6bzPOiy006q5kgSngpemH57KZ8 FJgAKiVfsETD
PFd/7U4KveMy5dVO/08wXBBtlkZBBKDQH13LNBunt/gpv0P9DT2/0rANvfRU 6Q2MkMsgzslV
4Upt3nd8QSvCdWwPodDQK1xsw2uwxdjf6I3t/ozuxT2MxPbx3iHY+gHGdqVx H4HF/AAXJZsI
eugmCNHqICYwhElqSR/IgANk10Oh3pd2Q8R5gr6KTKJV9jfpLXA7YwfQj3Of Qgfd2gJKqxgR
cJcEuI4bPsBPtCpsH4+/wk2GX0Qpoqj82iRJECFglFK5u0uPj8VjZvcQifVD PFgPJQ+wSL5L
DPtYCa3RYx9fHuDrv6pkBigE6FoOY546bYIyXYCOh9UcKbhPTIye4KnMidqN T3GWbISVeohn
VMlvU+O7xxJdoXqk6/BUHy9AMwMbEo86UCOeSXi8Ee8JeT5tgreJrMSjNtOI lyO8rUa8TfLM
NsF7Dlvi5VHw8W74exqgQjuvUaqhdcn1Yt2WBnykILbJvw07sooCZdTXdcce XhxH+L4qaEZj
MfrhP1BLBwhv6ocCqQQAAHYLAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAA AFIAAABjb20u
cGFyZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy95YWhvby9Z YWhvb0luZGlj
ZXNDb21wb25lbnRzU291cmNlLmNsYXNzvVhpcFPXFf4ulpCRH5swuwEZs8iS jOJASIghYIxJ
FLwAwqamgPuQru0Hkp54kgy0NAtNQ9ukS5qQxFmadAttQhtDEglwGzLTKZnp r06nfzudTv92
uk37s8s57z0/CXlh+RHP6L2re+855zvfOfecK//mv9c/BtCMGx7MEHggrqci GdWQWjaSM9SE
lh6MnFGHdD3Sx89oOqHFZbZNT2X0tEznsjE9b8SlBy6BdboxGJHxpJbJyohM DdBYN2RES2WS
kfbuY8dlPBelsQczBVZNYiaaIIXagKYeS0qBmuiu/vZd7btbezoOCPg6jqvD aiSp0r5YzqDt
LQIztIRA9VaymNZyjwhUBRp7BVxtekLOgsAcBR5UC8zt0NKyK586Jo0Dlm5f hx5Xk72qYdqy
J2duNdV4UYUFCuajhnUsVDCLdbhyQ1pW4MGOe6KHsCoyllNzWrwtqWZJkT/Q 2DE5Xe3mjpZZ
WI4VHtQJbJje5F41fkIdlGs6tJw01GRWwUqsIoL7Wh/r7u6Pdu2KtrXH+tu6 O/d2d7V3HYj1
x7p79re1C6ycHoCAe1DmosRwLWGdhH131lpeGJi42tjrJfLWKliH9bRDdukc 2DgRoKf3y5N5
zZAJM16HPGgUCE+XOeWynD9eBBDiAIUF9gamcCKaJjbSatLOu5ZotAykPTdx xoK9QUEE9wl4
LNhnBCITzVBQUno6kjZ3RMoxtnASutPyFJPj1pMJfs8iLntlOqEbAquJz+lj 2sKpt1nBg3hI
YIFs09M5lXLY2C3VXN6Q0V0CIspQH1bQgq0C3tIegfqpc8v20wM6LSunx0Dn 55ia1eKxEvBn
ArfDfRc0tQ0R3JaJSG8nwW7vVNAGIsEnd9oQy9x//o5z4jNAS5GnTBgn0H87 /qjQpLKDVB+a
78VSthSqhtuGysr1DgWd6GImx9kpY7JxykSqpNKLvdjvwT6BNZML5HMaHWUe 9tBIQQxU1L1a
tjVN5TLHiFunCtu4jdsscymhg7e6dKijyaQcVJOtxmA+RbW4/XRcZpgvDz4n sLiyZu3Ma8mE
NKpxiDrZfhnPG1ltWPrjFh2swE/c+9VkUj8lE/4B3fB7cRCHuRI1MJVHFfSj nhpSTrc08rKq
4Bji1FzUTIZCI9A0WbWcMGWDaWEVR73owWG2MKhgCJrAUivt98uUPix3G3qq LGaJuylV95rV
NTiBlAdJKvF3lB8K0qCCUkNJNiyNrGxNEBNv3vk5LdFj9abPqMycVLAdO2qQ Rd6DHLWBu1Si
YBg1lBAJLZtRc/EhaqVqInFAb00mYzk9fsK+LXhALWZ9yceedDafyehGTia6 M9TTWZ+TvF6c
xgK+o5xlUqkGVuu5IWm0c26tv0NCqVQMlDrJnPGoWPnEus8peIp1+6dMNLsT cSJ8lTfrLHZe
wVc4P13yUUl0LQ5EDx1qnNhlmdrnFPhRz6NvKtiITSz+bQVfw9ep7xoyqyeH 6Uom6CxWswsH
zmQk642x3kWBSZp5Y68HLwvMqzxJbOJVBautM/qagigeZ2NvKHgRL5F6Ls9q Mi9vvWM6TM2U
FA626gpEuWRW4QcK3sLbvBLNxsZXDnlxAe8ouIif8MrJPN3EKq5GTp1iJe8q +CF+xJAuKfgZ
X5KqSd1eQz99hpePejBKjk4sCwMD0vDifRyuxgdkyB/QEg/7eeIjLjQFukrd YX1hRS0seJUF
rwksD7RNu+8omaPA5JPk8ZKpNlJNt268uzW+UtdPdynewDpQTxRU0ceNGajj +zr9FnHxnZve
8+npRQ2tKvStkd785xYfYPZlGszAXHp66Q2ESagB88xZVjDfEXuEZlhQCRbh C17B7I9QW5Ke
Q8Z5jwubSWK7qUGx9mMRFpu6lmCprWsDvXnNdQXLRh0dM825R8tkXbas4CS3 ZSO2rDv4IWor
hfvKhN2OMCWtLZwlJhjoWhbuDIbIh2ABa0awKDiGQF/QVRXmlSJotqnk3SJS Bkh6DhBPg8TK
ENZAM435LYW2MR41kxEOhB/304hZo4NpA9hhs+gjMw+43qIgjJKpLZ9gW8kV KxJn6f3lMnd8
jjtUS21tHcQQW/cGQ65wAa2d4UotzxKC82U4vQ5OL9qx29TsJc4fM3HRmbY1 /90m6lyI4O15
B3NtvEdCN9EXDF1F9whWjqGnbwwH+3x9RXye9h0p4AsFJIqQN0Qny93ErCDh GugkqbmhoMu3
LXwNx90g5mk60xm+iQaaoXZ7EcusQCywA+EKhSqjsBmz6fkiavESpfgFutW/ jC14hdh4lTwZ
IeyvoRev4wjewHF8DyepvjyNt8u8P+d4f872fgtFa9z7U06u329HqXoMp8m3 L96oSLP3yuJS
7cSF2ogt/xzFxUXvjXXvmtaC5rr1WTBOTBMR0xUMUehplBkNhuqaivhSKYBW 0lE2okC/YYt0
AK4ihOum6aCl3nFnI6XKE6b6jXgSD5mh32g6xjXhKQdY1gbWYANbdgswUQbk 6RIQ62z/ioD8
moB8WgagwQHQ4ABocAA0OACom9kANLNAAU2cTxYG2lcCwcdxDydK6BqecYPA FPFsJZTfUin5
Hdbj9yaURZZCB0qTaZaLBHVB2+wTtt/B5ZbNesuyaZKl6sjsN/gkPj8aXF63 oohvlWz6TMk/
kM0/YgX+RNXkz2UUBB27QdNxYY6+gxdMVEF8l0ZMATVJG8t5+s5eNNtYGiuw +IPhT3ChgFcu
82BbASOXg8vDRbxeOgkrqcADfyFIf6XM/hu58w9S808y9y/ch3+XZXyzA6/Z gdeMN+l0cIZT
/7VBnabvZv23Qa2tALWKK76JSViAivh+JZ7/EJ7/8f9M4BczsFZUYZ1wIyRm loUp7OAJ23gE
N3AbxQs2in02iscrUGwnEJ+atbP2Jjyui1hadRELaZJnCvjxCDw04XJd4kje hNt1qeoSQ/3p
pVujKeZgiZiHHcKHPaK2DN4+B94+B16/03rOEqW8axOpf28E1dQJfz46hvf7 eFDE5Y6Q70oB
Hx4MWXBoMK+xgOLBUAHXS/m0jIoIxAooYhWh8BNh9QiI1YiIhjIkm2wkS6jU jeEXJpJfmjo+
/j9QSwcIC4EakvwIAABqFAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABG AAAAY29tLnBh
cmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vWWFo b29JbmRpY2Vz
U2VlZC5jbGFzc72Xa3AT1xXH/xdLSIjFUBmDjZwgsAFZshGEFhMMDsY2IGIb ioyJacCspbW9
RNaalQQYJ2lL0idp00f6oIHSpm1oU9qalxTiBOiLNKR5tNP2e7922k6/djrt 9Jzd9UrINph8
iGe8e333nnN+53HPvb79v9euA1iL912YJVAb04bCw7KuqKlwWpfjanIgPCIP alq4h5+RZFyN
KamoosRdcAis1PSBsBJLqMMpJawM9dNY05WwOjScCLft6jusxNIRGrswW2Dp FKojcSWZVvtV
uS+hCMyNtPa2tbZta97b3iXgbT8sH5XDCZnWRdM6LW8UmKXGBcqjbW2tvdGe jq272qMFEvNa
tGQqLSfT3XIio7gxT6DiYGfrY/6DrTsj/Gj2H+zc6T+4Pbq7haylyIvoyFCf lkgJuDeRF0k1
3SRQEqjtFnC0aHFlDgTKJLjgFpjfriaVzsxQn6J3mbzedi0mJ7pl3eC3Jmdv MtR4UIIKCYuw
gHUskTAHbh5VSShlbY70oEpmQ+0zDjh5LynRtJxWYy0JOUXC/kBt+9QJaDNW NM7BctS4UC2w
+u5mdsuxJ+QBpaZdTSu6nEhJWIGV5GBP845du3ojna2RlrZoL4dd4MG72xRw DijpCKVpIeFN
kUJnyvxcHpj8tbbbQzGqk1CP1bRC6dS4OmLks5bcoxzJqLoSNxK034U1tPBu 5Vcoy0XoQRgP
cUbWCewOTONEJEkBSMoJq3gbI5ECSGtu8oyJ/TEJ69Eg4DKxRwTCk81QHoa0 ZDhprAgXMjZy
1TmTyjEOjlNLxPldSrGMFtZpaap4giTunCDROybmkI5uJRnXdIHllJO7l0Ij V2mzhK2gPVKm
0JZKy1T4+jZFTmd0JUIVICLsbpuEbdgu4MmvEVg2fUlasXIhQjV0dwZyok9O qbFoHvzZwL24
7yPULYOE2ziZ9F4S7HaHhE7sor2hbLUQC9x/bsZ19SHQUuapNiYC6L9X/Kgn DaUGqF7WfhBL
qXyqqu+ZKnO/7JPwGHo4khPRKYhk7bSFVBxKDz6BAy48LlAztUAmrVI74OFe Gkk4iF6qWjXV
nKTOmmbi5unSNmHjHp+5Hcm0ufKNIZJIKANyolkfyAzREdd2PKYMc7xciAks Lu57WzNqIq7o
btD5sXKPEsvoKfWo4o+Z4WAFfoq9X04ktGNK3N+v6X4P+jDA3SzIoVQlHEaA TrG0Zmrkz+Tq
EJJ0IsnDw5QagfqpOu6kKQumkVWoHhzCAFvQJaSQFqg0y36PMqQdVbbp2lBB zuL30+4+aFXP
xVEcd+GYwIoZ1YeEEZyg056K7Kiip5TmOEXi7Mz3aT485vn2IbWZJyXsxKNz 8TQ+5cIn6Si5
TyUSPo0FVBBxNTUsp2ODtLtTxq3tWYFVeZ/2JlOZ4WFNTyvxXcN09LO8Xawe PIMKvsh8joNI
Pc+tpQcVvY1radUMA0itoT9/cpROZMGsH9b9JQmnWLd/2sKyTh5O/Fd48QkW +5qEL3M9OpTt
Cr0WByL799dOPpk5lN+UsAoBHn1bwkZz9B0JTXiEFZ2R8HW8QKe2rqS0xFHa gWI/ecrOdI0M
K2whyhYWBaa4CtR2u/ADgQXFe4hN/EhCrbk7z0toNEc/kdCFvWz2pxK+h++T IW7RfF2988Jr
R2+2Qili+45AhNtmCS5K+Dl+wV8iqejEl/0evISrErLI8ZcjGZlP/juuWHav YiXXJFzCZUYa
l/A6X7bcpG63rh0f4c+qCzfI5cmtob9f0T24jgE3fkWG/AE1vtHPE7/hZvNb upLNsMewokY3
3qR7dZ2/4CZuanuLtd0W8AVaphXmdSoxUN4yCQpDxXQLqdlHtYweU7apfEEv L75Yr2Y5LKNY
lNCvEw5U8Y2f/ity8K2d3lXw0JuaCI1nQaL5UmO+jJ7zsYC+fIT+qqU3/zjF ZXgvGksX0tND
b9CF1oEalBuzrHiRLbaDZljQG8xhcfASvFdRGfRKV+HL6/CSBBClZwNBPEpy XYYuyZTEA3jQ
0LoUfkvranrzN8clLBuz9cw25h4vkHVYsoL3iCUbtmSdwSuoLBZOFgg7bWGq dEs4RTEpofcK
Fu4IhtibLEKnsSg4jnBP0FFSx19yWJvFR/MeLiJlwAl6jlLEniRVT1G8njaM +U2FljEebTDS
4aQvD9OI47dxSnpfMf3zU9I3TknvM+h9d9I7mN43Nf2L9DxD9GdJ1XeJ/tw0 9Jts+s0WPfUi
C2CLXQ1XsMV5joppjABab2JH3hWzoi7R+/IUVSD44LC0tVN+2bonGHLWZdHe UVes5XUieKOA
02NzerAbHzc0e7CHao+5qHlZmv9lBepkiPC6X8Z8i/dA6BZ6gqFXsf80HhzH oZ5x9PV44zn0
07rBLJ7IQsth+IboYLlbmBMkriMdJDU/FHR6d9RdQ8YJijxNj3bU3UI1zTxF PRRLzESUWYlw
hkLFWViPefR8i8a3acu+TXvl91Qf71BM36V/Vd6juLyPbvwBB/BHui79CUfw Zzol/1Lg/Unb
+5OW9w9jre39SXvPPmRlyT2OZ3py+MyNojL7a0Fe3HZe6Ay15E9RXnhHr6t6 xbAWtPoC/5ZN
BKaeAtMZDFHqaTQ6FgxV1efw2XwCzaL7G43/Dh/+QR3snwhRYsoNhYZ62511 +Dy+YOCswxfR
YhhaZzjGPe+UDZaywKotsCV3gIkCkOfyIKVG7P5N4/8QyH8LAKptgGoboNoG qLYB6Ci3AFRy
yuiXXE8mA63LQyzk6HChhK7heScIJoevFqGI2agQbqwSHgNlkdWAJ1DqDbPc JOjgL06IL58Q
WCZ9RnlwT8jiG7wbv8WP02NBX9UDObxYlBBRhipRjmViMVaKSoSEb5qEcBTM hJylbmEm5ByN
OB50NbDAztDfHN0mC2x9EViNEau6m3gpix9etAYvG4MdWfz4YtBXl8Mr+T2y ko40iBpiXIka
sQorRC3qRZBuAHVYL+rRIMLYLNYU7Ikmm7nJZm7CBfzM2AN0FbFDOMugarBI 1xSRchaDfL4Z
oF7JwBQmYw5jxYgbCHEjqkUjYW5GUDRRKLdgjWjGWtFCqK0FuW2wERssRMHX GwvshgU2aoGl
i8BauOyI602j6VbegstxHpUl51F+yZzJ4sppuGjC4bjglcxlPnNZBc0u9Eo8 UbiK6+MWnI4L
JRfYuVcvFNVIOznXiVaxG4fFHmREV4Ezo7Yzo7Yzh+3T7QXKCa9qJROvnYab Lg1vjI3jeg8P
crjZHvL+Motf7wuZ4DTw3pr422cMFtRm8bt9oSzezlfucr7OiAOQRC9tnUNY KmT6d7IPYRHD
BhHHI0IpIGy1CCtQRx32HYPwXUPXe/8HUEsHCNqLXobCCQAATxYAAFBLAwQU AAgACABJBlc1
AAAAAAAAAAAAAAAASwAAAGNvbS5wYXJlaXMudHJhZGluZy9iaW4vY29tL3Bh cmVpcy90cmFk
aW5nL3lhaG9vL1lhaG9vUGFja2FnZSRMaXRlcmFscy5jbGFzc41U61LTQBT+ Em5NWeSuAspN
bkUhIooXEIQQpJo22EBn+JVJ2wWDbcKkwRlexPfQzPjDHz6AD+W4u2lFuRQ6 03PZfOc75+w5
s79+//gJYAE7bZAlzBf9inrsBNStqmHglFzvUD11Pvq+us/ljlP85BzSCcMN aeCUq21oltB1
5Hx21LLDoGbhiBZDCS3769umKWHY8INDlRbL7nGVqrRywGw/oKqulZ1qdVnC qADadjq7mdZ0
y9bMzI6Z1bO7lm2ZezlNlzB+FUeOHtCAekXKeHrP8Vi6vimho3aqGWlGKWEk 9hskm74GYdt5
Pbtp5iT0/I+ME45ePLRjae1nNkzDatDOehgGbuEk5O0MXsZTz5xYYcGeG65K aJpJ5SU0a36J
KujHnTbcljB5oxkS3MWABIWms9buelY0b9wocjnJUg0R3MN9VswhDcVH1vxM qvG4FbARELSg
lTOMEYzjAQurM9hpr+QWaVXzK8e+R72wavknQZFKmLia+WwJOPskQRsSnH2a YIaz951ntygt
cegsgRJDHxHMcWjnX6hWdll6jlIJkjFqgeAJb3ikjrqiWh71lKA9bnKJ4Dnn nromys5Tr+QH
PPglAYlTLhOs8JS954LrLawSdMRp3hCsY+NicRxpc2GdVgp+udrwKs8WkJNv EtxCJyffInjL
exi8jPys7jRBFxLsGg3Xo9mTSoEGu06hzMbXY/hFp5x3Apf7tcNk3PiWy53u f/drnr8nEkja
82ggNoeywhP1N6dVYsma2JulYIDvErMG+NSFVmo6WdPtte+k5nfUfNaa0F3i nLGjGz1M9zLv
C9P8l/uGvu8YjDAsjNEIE8KYipASxsMI88J4HGFRGM8ivBDGqwivhbEWQROG HmH7K2OV8Y7J
WVYh5G4o8gB65DEMySlMyIuYk5exJOtYkzPYlvfwQU7gvYjif0PIDLJMJ8Hv oR9mq/IHUEsH
CK5edTTMAgAAxAUAAFBLAwQUAAgACABJBlc1AAAAAAAAAAAAAAAAQgAAAGNv bS5wYXJlaXMu
dHJhZGluZy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL3lhaG9vL1lhaG9vUGFj a2FnZS5jbGFz
c51XC3xTZxX/nzZt0vbyCm8c0PJss9EA29wEhnRpKBdKyppSaHWtIb0tF9Kk JCms4JyKz72c
Tp2o863DN5RRVlAG7r05HT730DGd7uHGHJvbZNPpOffepLdp0laT3733O+c7 73O+833fg28f
PQ5gCRU7kUeYH451ertCcU1PeJPxUJse7fD2hLbGYt4meW8IhbeHOjQnHISF sXiHVwtH9K6E
5tU623kci2tevbMr4vVbhCoDhAItULXeT3DXbgvtDHkjIRYaTMZZ9nLCGF8s mkiGosnGUKRb
c6GI6Q2NBKcWCLZurFddUAgLtiaTXcu8Xm8uCysN/YRi4dpQ71+tbnZhHGEa M1SaDJUWQ6Wl
oEhTA8GGqoCPjVtYOyrX2eKCpqo1dXUEUvM5cmAxBqK1Va0mlKbGgWrV5w+2 +urWb6gL+AMN
wdZg3cZ6n194iDAxgy7o91fLFOdgjDXlq1WZT5D5afrV/qqGjfV+FrvRnOJE zDancmokzB2B
wjR94YhUjf5AdV09YdFIlIPM5MQPphdfCVOGIgeFcPCE8Q42rb+8rjZImJGN JGVdNv4Mg0qM
xPp9kVAiQZhVm72UzXnO+ByDXI226WEt4Yt1dsWiWjSZCMa642EtJWWKnSio aW2pCZeeUKN6
UmvjkmnmatETvrgWMuAx5pQeiui7BXatYCMYsZKQX17RSHD4Ym1aMdfYhQou wsWMkGlCRXnF
KOu1iJkvUTAeE2T0LgXn4wLCuFo9qgW6O7do8YbQlogmizMWDkUaQ3FdYAtZ uMKwpggrscqJ
d4/YH1aHwslYvEfUVY28pCzq5cXIh0/BCnDyLy4f2iRypSfFX9Eorq1WsBDl MlqjoMIcrVXg
MUe1ChbhAhkFFFRKCBzJrXqiCFcg6ER9znaW6mTz6rUOPZEU3xqwkTM10Dkq ctmXybq8hLVt
UrAZTVyCHVoyRUG4KIvbI8ldLnXxHonb4iJciVYnWrhUc/DI2+KT7LyPMC+X eBspW3wltigI
g4uzULMKurQ8p2nminGhnalyN2yzVTuxlVCWpUQazK9lQxE6sE1s3s6NLFtF DSY3otKpIIrF
hMlhY6VZU7zTJGXdFrPETiHboSAuZNP19CLMQrpDSLsV7BTSwva4pu3mjI1L btXsC40wgTGD
beEy4Sw3mZtNaWrYmqORcEpyB7Zea9fiWjQsKbka1zjxAcJ5wyVBwQfxIe5K UmZcUN3hZHc8
FFnN4eiOa5zE+Vl0cXA7Y1Fvd1LnLbyWa5aV7cVHnfgIJ2pEYgUfw8e5cbFG jny5WmEr6bot
27RwcrkTn+RAjOQiYVJmrKSfcszTaF9E58Dx3pfC5IzpghEoWhu1aFsszjts BqGpMlOBYFvl
Fezp3BKLJIZNWlWSV/KW7qTGjn8mt+NpMt7YsqlLWZh232p8o9kGBnos4RYF X8A+09NU81SN
w5cEak5uP+xCvqTgy7iVoJhLK7XJlUm+h20KwvxVBV/D1wnjLWZbyueUD8+u VjSKhG8q+JZd
Qjp2MvkdBbdhPx8cE1oyEOrUpAyz9FVD0PcUfF9oS4Q2sSGutetXCf6HCn4k eJeB59OnrLcD
Cg7KahprrKbuLt41e7o0ozscUnA7rNpU27iu9HZjB5WV06fgCO7gJRFqa8uw xVoQFc1OHOUT
yPBJdOEncuyUoZh4XMGdOMEnXWlbqQS0jRA/m+4hCCswzc3No8jhzxTsxh4Z 3a3gerTJ6F4F
N2CPC/cTpurZ15mQPajgIfycw2gYbkv+QzmNH+h7w1rGQdfiOUlsQoYeLoZg VHVIrJpTv1H0
Z3H0FwquNWP0iIIbzRj9SsHNEqPfcM3pA6tbpn6n4Doh78CjCh6TairiajJ7 nGCfUPAH7OEd
Jo21ekLChSd5TzJxTjzF56fhKylHE3Thz7ydDEchZv5FQQ/aXHiGVe409Lvw HDdrru6GWFUk
EkzGwtstfqH/m4IX8CKfcpnAX8eLJpTUY1HCrpFKdRSZHv1pKa2Ym/BL3DJH FSDJjAsvc5/J
xIpjryj4FG6Sw+Q/FLwmhylFs52a5ND0hoJ/4hyvUWv/ZTV8fMndYqtDyZD0 FD47vWU0pfQO
48K/+RLbEqjeXNpSvVaVV1VpS2BtaUtNcINPzPkPX4+JUsvKtpvszxnogZ3p /wr2/7RoRrE9
uoivuI6EseMWmwW3WpcLyAT7EatSNHCs1WhUixs6tISTXITKUV2F5tXyJYzP QHIlSw1RxvGT
e/R0/hegkCGn3MLhYrjYBpcwPMYGj2WY71QGpxsT0/hJDE/OgKfY4KkMT7PB oneGDX4Hw+fZ
4JkMz8rgn50hvzRjvixD/pwMeG4G/7wM/vkZ9AsG2Zcn1yxjXGF9Pca3WG6W BrzI+lYa33Ec
Sy8Ws4QlDF3IX/mV3IGlh/DO/EO49KBBvIzfY41UrOIwn2NxZVhuzMizIi1A YxoRMdfjLunF
ZUdwuYcOwy+vGnmpnvzDWCev9QOCZxnWn0URTrGSR9mf05hGBzCTHuHovGIo UkyxqDOyWiTX
bUvlaZYiZuztxaX7MKEXG9wl/WjMwwnQgQHoJGgfxg/At6H4GKjpCJqZbp2D Pe3Fe/vBFbxJ
iDSLqcNi0iymwl7oJ9BR6+lD5Pw+xPjbxd8Ef5OeA2mXKrkkQW5MoslYQVOx imZApZnopFLs
oDJ00zz00HxcTeV8cvEYLk4xIlmDXYaLnQxfhe3sJElft5z1GjBQ4Lkd/gF1 UvmgS2yRKrAi
RXIcsJgvY2qZmyjM/Xg/r61+fFgC9YlMUdU2URPToq4dRpQjl6grsoq6bhhR BblEtWQVdX3W
6NRkMm/LGp0bstpRM3x0dmW148asdqiZzHuz2sE7VhY71EF2fDpT1E1Z7bg5 q0vq8Fm6Nauo
z+JzlqillksuLvTPn8DKTP79Nn5Xmj+abgyHrcbQyqas2wfHQY9DGoEnvw9f lAYhyXf04SvG
oCA1KDQGDoOmRjA1Jk2BgVEFozLmG8ZAuAaaylI2BnQULjqGMXQcU+hOzKYT KKeTWEJ3YRnd
DR/di1q6DxvpfrTQAzYXWtMuxFMu0Fu8leRJ9lnZ+pQL6z1uVx++7XGP7cN3 uen14QcD7cJo
FEZV/5jAXaK3H4fzsMkssEyUmokSTne/+1h+Prv4U4b7cJKfu/i5x30f5Tvc /Tzl4EcIHjAI
Hubnl/yccv86O8FvWcHv+Xnc/UeDgKfybQRsmfu0+082lffw87Sodv9VGE4P ZSD3s3143hir
7jPuv9uYzzLu1X68TnC/6f4Xs58RVpP7bYPilCX+YVP8mSHiVZpIeSJ/ILWN vIeDHufUPsGp
fRIT6TSm01Oc3qexiJ7hZvssgvQc2ukF7KQXcQud4XveS3iMXsbzdJaK6VWa Qq/RAnqd1tAb
pNM52klvppuwLHAz/YtordWE88gh+qmACo3dlMjJT1Fh0X8BUEsHCAj8j00N CgAAoxkAAFBL
AwQUAAgACABJBlc1AAAAAAAAAAAAAAAAUAAAAGNvbS5wYXJlaXMudHJhZGlu Zy9iaW4vY29t
L3BhcmVpcy90cmFkaW5nL3lhaG9vL3V0aWwvWWFob29BZGFwdGVyRmFjdG9y eSQxLmNsYXNz
nVRrTxNBFD0DldK62oqI4AvQqi0oS+VpIBrTQIJWSUSJfpzuTumQ7U6zu9Xw rzTxkfjBH+CP
Mt6ZNk1TupaSprt379xz7jlzd+fP31+/ARTxNIkRhhVH1e0GD4QM7SjgrvSP 7BNeU8puRtKz
P+rwhcsbkQh2uROp4CRXTCLBUDgD8OCzjJwaw1hUk2FumbqVh263RfBt6cvo GcN6/hz4wiFD
oqRckQLDRQsXMJbGKC5ZSOIyw2heF2TK0hdvmvWKCN7xiicYJsrK4d4hD6R+ bicT2gjD2vAy
ckUyknJ4KMwiw+p/vJiSrUL5mH/itscpv185Fk60lcYUppO4zlAcWoGFGdwg X04geCS6C2iY
+UJZBUe2cDzZCIUt6lWbGtSVb/sqktUTu12qp6GMFoa5QQaopGN4z3elI8KS qjeUL/woPFDN
wKEtfTVoH2KQcdszZ2Fe+yx0+Yyh6NjfOKcEhslegwdCuAzPz2hKV8cZeWDh oTZy+7QRDeuI
XxyiFUNWC95zyYSsytZLvdZXbHdNnMRHFh5riTMtid2Qjrz5geT0Vbqiypte VCJtdEjkT72L
wlGBsHfarWPUPLGwotVMttS0qztCZgewMqRbY92Velem+3xCS7ovg7Xn+yIo eTwMBZ0GmR3f
8VRIvl6LqKZcLNNBM0pnLMtm9WlDkf4nMU75FEWbGKEfkF5Y/E6Xn7C+0tMI MjpnVhjhXiJL
kUWxzl7BhMlfxWSbZZvuunZ84RvSP3DtS4djzGDKBj/VqmnjdXQTt2id3ivc 6c8028u0H8t0
1zDdQ64/0/1eprexTHnDVMBCf6bFXqb3sUxLhsk2U+jDVOxl+hDLtGrmuGbq 17Fh5sAMBlS1
SdcE4fAPUEsHCHteHWaOAgAAUgcAAFBLAwQUAAgACABJBlc1AAAAAAAAAAAA AAAATgAAAGNv
bS5wYXJlaXMudHJhZGluZy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL3lhaG9v L3V0aWwvWWFo
b29BZGFwdGVyRmFjdG9yeS5jbGFzc51VS08TURg9ty0dWgaKvOTpo4L0AYyI 4KOIYC1JTVM1
JSToapheymA700wHTbf+ArduXLowLhRfQROjKxN/lPGbmVIoLWY0TeY+vnvO +e6Z75v++v3l
G4BZpAR4GGYVvSSVZYOrFck05LyqFaSqvK3r0q6pFqUNa7qSl8smN1ZlxdSN qgAfw7xuFCSu
FNVyhUu8tCURTUnXJE031a2qpJbKRakRlqYtBrGk53nxvqw8lgucYTJzoryt XDuYYOiwgbmn
qqlsM8RPxh2m7RwmrH9R1VRzicEbia4z+JJEFYQXnSICCAoIMcz9sw3js0F0 4ZRF0cOwEHGT
USNDIroeAEOfCAHt1mxARBv8AQxiWMAQw4Qrc0SMwM8Q4Olsbm0lm0wxhDKq xrO7pU1urMmb
RTK6J6MrcnFdNlRrXdv0mdtqhe7+H6kzdKuV2mJVN9aqZeLrj2R25CeyVJSJ 4N7mDlfMRPSh
gAsMY8frhSu6waWUc6oDYUyIuIhJelk8WZQrlNa5SDRzAso+kehAFHEBMYbR v50TMYVpKqAC
N1P1wgufTH5Yc37dzs5yr+leDJ2KwWWT14xheBBpYmxsiqw1qNxINEs3HqxR JoKYw7yAKwxR
1+UuYgFXGdrz+kGvzDXn1WA+pdN0OwHXqfxcZUk2mbJB5jK4NoAcdcw7Wlp0 yxYvpbUzliOH
BGktryq8ktRLZV3jmlnJ6buGcvhmxprP5jjP1+NDTjydJywlaDVHPdbnxGpe 1beDjsSqavXR
YIsOmbE8pe9dWtO4Ydchr+A8NbmXPr4e2J1OM5/V+zS2U4S+RfTsoNUj2mc0 jsU+Q4x9RdcG
Tbo/oncP/T8R2MPp9+h/ZxON0nPYpooTKE20d9FNFT+AaYpJGKOI6JDhDM7S SJ1lJ2IJacTg
oTEWJ+ZXaPO9if9A+AVG4t8R3sc4wz4iDAdBL/3qqgOkBdygCyQo9ZukuoQI lm3FAYe1pmjN
ZigXRr9L9M/jaCdr2qHYB/Raep9w+Tuuva0L+O20+RHCUJ0wRMIJm3CRpB3C KXtNaHacwzxi
g6duw5IL5LOWyFsukM9bIpddIF+2RK64QL5ugfTgtv1M4g6NVoV12Q72/AFQ SwcIKdPP2kAD
AAAJCAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABGAAAAY29tLnBhcmVp cy50cmFkaW5n
L2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vdXRpbC9ZYWhvb1N3aXRj aC5jbGFzc51V
31NbRRT+NgmkCddCsT+oUCBWbAjQlJa22rRAm4Y2Ng1gEG1rrZdkSS4muTEJ OHnVd0d9YXzT
F53xCesMDj5o3zrjH+X47SbEQPOjFiZ79+49+53vfOfs2b//+eNPANPYcMMh MJ60c8GCWZRW
KVgumikrnw5WzIxtBzfLVjb4QE0TX1jlZMYNl0DfhrllBrMmrRbXNmSyLGDk 7JTMLpnJz8y0
FDgXa4mowWqGIYHu61beKs8KOP3jqwKuMHG8cKLHgBtHPBB4zUAXuj3oxTE3 +gTGXgraQD+6
BTwyGk+s3IyHIwK9MSsv45u5NVlcMdeypNkfs5NmdtUsWuq9tugqZ6ySwETr EA6LwjCOpGpz
gUv+mF1MB2UyaxVKMihz65zbRRmMVMUKjccO6xfqwRsYcmNQ4EzbvQbOYJii yXDWLJHkqH+8
lTNtEfJSwFEDp+ATWG5JrGr7/2kLeMsZGdkvgpEOCD0Ywzk33hYYakfEgB/j hJZhO182mbOi
gK91oA3gEwYmMcVMp2VZQ1nrlixGb+vqiiotgkqLCwIz/uirZGkMFw1cwozA UbqIJDYLrKVK
QTIVY00YsoJydr5aL5GYVVIQV/COG1cJoOH1J/XFwLu4JuC2SpFcoVzRjB8q xtcN3MCAQE9K
rpub2XLYLEmFMmdgHjdpRyICJ/zRpvnxqPzUimW4ffrpQjYG1Bc7yDDkxh2C tD99inHUwHu4
R99JUtWrSu8OHaGZ3grsvoE4FslGgUVTMl9mTqsH9XJTzEabZqBuLHNrezLR fMpKylLYzhXs
POFKCXuzmJSKT8LACj7goaoH18JY4F6nmFvsbM76w3ZtuhEuIWVKMX1g4CEe CRw/zFQZCMy9
JDtl3fzsG8kDR0xEBboq1XSPdso2e1hRlljOqgk3wR6qtJX26isqyzqqvKBE m07/ghDkbde6
na9j9bGHVf0uWKpe+xqujPMqZviYJifvYWqp7jjO1IXHe4+jh293+BR8Hgv8 Du9TGM/heYqj
v8H4lYsOvM6xHy6OFzhOw4uL6MMMjnPFqG7ECZzUDk5hoAY6T5cOZRGY2MNp hr+LkZ06Xrfe
N6sxTlbtahhq9ibO8rtL3Sc1tB+IphjME+wtAZL8Cb0KOSAwuYvzO5xOC8Sn 9nBZ4Hv0BLga
+hn9gSnnHmYdeIaxyQMMhikAEIXqIgO4jxEs8kJYYozLmGMzUMwCVZ91ZvO4 hbBmPq85OrjL
h9uIaHbs+FW2Yplfumi1PfiL3vcNqn8qzkH+bvFnTT7DQjwwtYu711ynXc/h VfPY/lzRV/Md
mi1ps/c7ma1qs4/amunZfyIsMHXAYwzhCQP5lAKYTOwaw0sy0HXcRZqyZPAI Fmcb/M/BRh5b
HL9EAV/jc3yLkhbrY52o7bpY21x5rMXaronl4/MTenLSzyC9mRTtLtfW6M1J P/trNtdSkFzb
qq8J1exrxXCFTyWlQxwuqK8aCspRZ+JgJE90jbOndsT4riVGUmOw23XE+LEl htQYvGs6Yuy0
xEhrjBv1o9Ya46+WGGc1Rka/Wf8CUEsHCL6VuTKFBAAAqAsAAFBLAwQUAAgA CABJBlc1AAAA
AAAAAAAAAAAAJwAAAGNvbS5wYXJlaXMudHJhZGluZy9iaW4vbG9nNGoucHJv cGVydGllc42U
TW/bMAyG7wHyHwgEvi0aOnTHHNJkn8i2FulOww6yzdhKFdKR5KT+96Pszljn NsnJMMj3If2S
9ATWGMAxB7BcFOjA4gEtBIblh5ufn0BTDiZ4YLIN6KpCyiVJwvMrNR6J5nqr onyhAxbsmtmX
7x9/vJHoeDQeTeQJxoOXGiJJETQsmDxbnD+heshftppfzdgV8q6zElUX/E/U s2uPHm51COho
pRuuw0s8ZdvQEPtM+bowlj+g84bpSTFLptcOfiXhNyTT9xUkGSSPMIVkl1Db XIfqLFWxbmlS
0YlJM0MbPp2RY1oXLWYyiWOBz3cr2NfoGqi08+K/zoI5mNCc5Khyb5X2Qc3X 90PmtvYylBJh
fbc6jZGEofzr8mYBqZHtkJb0DsUVDxI8jQpNdYEBXdqgpJfB7TTgY8UuvK2r XFIvKMlsVZnu
3uW5fdnZ1lMIDtGf9XNIyOI+9QM530+bP8QEp8lHCtOF0/1H8cp4HHquXRa7 29fGm5h6mrnN
0+w5DEmnFttF2bC1fDRUgDWEYDYgxwFHTe1xSzvZA+R8JMiYCLtP6eyITaF+ 0IVc67FEkruN
mKUzclbfNEnALXrRreODiX+Z8172GnWGNYvt4Xj0B1BLBwjJYc9U0QEAAPAE AABQSwMEFAAI
AAgASQZXNQAAAAAAAAAAAAAAACMAAABjb20ucGFyZWlzLnRyYWRpbmcvYnVp bGQucHJvcGVy
dGllc3WOwQrCMBBE7wv7D4H2qMkPVMGDQg968uhFk6VG0m7YJKB/b+qtUOc2 82B4jeosx4/4
4Zn3CI3qzKLPU9u7FgHh4SftJxuKo6R2Sm9uCGqZkR0FswLOx+th219OayyG MtTr9xj+wygc
SbKnhPC6S9KWx+gDaRZHMtsgJC5iSevakliDwCXHkn9DdTdfUEsHCHjgQg2M AAAA7AAAAFBL
AwQUAAgACABJBlc1AAAAAAAAAAAAAAAALwAAAGNvbS5wYXJlaXMudHJhZGlu Zy9tb2RlbC9j
b20ucGFyZWlzLnRyYWRpbmcuY2F07Vpbbxu3En7eAP4PhJCHCsfHIPe+RlFY lqzCQJITWE2B
AgUEekVLbFe76l6SqL++vOxyl9qL5dhxc1obebCHwyVnON83w2FOXn2X3P5G why8JzmOTl4B
9vORpBlNYv6rYXtStvyU0jwnXGiMbpKMAP8MnkELWmfIhnAktcINThckFzPh +OTVifr8NMJZ
tpzinKyTdA9GeYpXNF6X82i2LGIq5/108+FKSaMEr8hKk/5R0BWQP8bIdiyI /Ms5RFOn/Bb5
vEvSfJrEeZpETOV9cRvRsByMkjUNcbTcJisSZcD4LqJZDvjay5TckZTEIVly 2ckrQ9s6GE0j
SuKcfcdo78KaT8xL6ELTmVUKqyQstmwCzrkrjdEEvMXxCsc5SFKAgf61rNiR NOTrELUpGm8I
8znmO0pJJL6Tbeiu2p7a33VD8aahyHWGtno1qjTY8ju2n1RovJEuAj9T8un8 PEy25+c7nBKa
nZ+Xh3Z+fr1im6d3FN9GZNRcp2iv4wWj8bi0M2Fmyv1VVv5PSZomKSkYhSlh QTMjd7iI8kWe
FmFepPqizWiYBP5kDq0gUBopydjMUuMXvEkSNRQmcVik/ND3bGxB/ii4WThS Csnuqi+apEK9
Ogv4exxx5YzGg0aKzSkTJ/FqQciq19JLjwU9A+Dsa5kzFsd2gILDk+eqOM9T elvkdexOKsmS
scF4GDJeoFCQMwAm+X5HmMJ1zP66w6FaRcBj2V7rQN6Ch9i42hAY0T6X1ju6 VBpiM5UGOxpJ
WXKsh2g63bbYM+O23eThWObEYySKArePPNZRcssgmbHlI5In8SmL6h0LbH4W 8RrkGwIysQIn
F/4X5oAOxfS/gWOERVdzCP3pM3JM0+2TLEtCWqLr9Yd37yZvr2av4cABmD6E wbRSYCfKvCQV
pKu4pOWWGyZk6BVcnvUiVX6d/VMaEb4lUaVxOP3BnqpzyZCPnJooeMxiGvMI YyqXe/Azjora
ySzvxvgjXXPPy8w7bhutnIrutdv8ctNq3HSYdgCcnr03RvB6nZI1Y9rSqjZS GxXKvkoV5eSD
AqUSqwplPnmzqOR3lAVLjLeE7/P19MPN7Prm11+ZiWfSwrPSwDOxyBkDal9k QjgPHMjSmkii
InbKEqbEv55Oj6hkZhSvU7wFo7csBHqWNeeX0LOh5U0qhZzmEakUmjP/TJJt NRNBWEq3+PNy
Q+h6wwLM9C2nKf9EV/mGaZvIVfpJStc0Xn4GZR5tyPbiy7blVz5nAaFDcyUt WvKRNv2XB8qj
DBwVc/LgwQVSaE0kk4oVPd8/BaYbjKvROwamygHVonMm4+NGRv9U+cMXEp7S lKffFCFdYfBj
ykpDiT/jNonUSVQhZRiMehmfZwfSgs1KIxoTTZqxNPU7OfxCmERJWn5XVCrG StZUSzlS4/yQ
oFQOYO59w+Vi9nvmtjhfCrca0leG5ijXtk8B8p2xNJtGUbUScj2Pjco5Md+/ PE/DFBItRnzp
td+KjOWCfWP3GoXKI1O7p6wSWmb5nlPASGy5Zl62mtoHtH3Hc1Xd1rfHLuap cVlplFsWGhZU
Hy1RIPHhQ41JBR5lYIpfR8cFqJYZwYVZLbXYJJ+myZbp55zaF6qcynQmvI7D qFiRuibqGq2r
U22Ur6GGFnQdY16r6jpaGLAIcBlgkPcCmCZgzDZgkIcshhj3IYhBHYhxj0GM FkPKimYF/jgr
THSPFayU3JT+ZUB8OsO+/17dHH74QacEFUXa3eJ5GOPgulPe1xRWa3c3APwQ h5smLB0+hC5x
xi2ECUvuQRkf6EaacF8n2vif3YiTsdaFOumXQ+TxX/vQZ/ScXSv
Re: [teneo] ClassCastException during read of one-to-one mapping [message #58881 is a reply to message #58698] Tue, 24 October 2006 06:42 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
This was/is a complex case. For me it works fine in case of a joined-subclass inheritance strategy
but fails with single-table.

After some debugging in Hibernate I can see that the following happens:
When hibernate loads the vendors association it will also load the one-to-one mappings from Yahoo to
YahooIndicesComponentsSource and YahooIndicesSeed. The onetoone mappings from Yahoo to the other
objects use primary key association (see the hibernate manual for one-to-one) as a default. This
means that when the vendors relation is read also its one-to-one's are read. Because they are all
stored in one table and according to the mapping have the same id column Hibernate thinks that the
one Yahoo record is a YahooIndicesComponentsSource and reads it from the db. Then when the Yahoo
object is read it gets the already read YahooIndicesComponentsSource from the cache (as the id is
the same and the table is the same) and then throws an error because it expects a Yahoo.

At the moment I am not sure where the solution for this can be done. One thing I can think of is
that Teneo should use foreign-key one-to-one instead of the now default primary key.
Can you enter a bugzilla for this issue? Then I will look at it.

As a workaround, does joined-subclass work in your case?

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> finally I have reduced the problem to a small test case. You should be
> able to reconstruct the problem by executing the
> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
> included hsqldb which creates its DB files under C:/Temp/options. The
> model project has a dependency on an "org.hibernate" plugin containing
> the hibernate libs but I'm sure you have something similar to replace
> that with. The model is in the model/options.ecore file but everything
> is generated. I'm on EMF 2.2.1 stable.
>
> One more hint: As you can see in the model there are associations
> between classes of different packages. This might also be a source of
> the error.
>
> I really hope we can get this fixed otherwise I would have to use
> non-appropriate one-to-many associations...
>
> Regards
> Andre
>
>
>
> Martin Taal wrote:
>> Hi,
>> Strange. Which ereference is set?
>> How does the database look like (tables and records in the table)? Do
>> you see anything wrong there?
>>
>> Can you send me the ecore and a testcase to reproduce this?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Here is the stack trace when I run into the code:
>>>
>>> 2034641 [main] ERROR
>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>> saving resource trading
>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>
>>> at
>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>
>>> at
>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>
>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>> at
>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>> at
>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>
>>> at
>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>
>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>
>>> at
>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>> at
>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>> at
>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>
>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>> at
>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>
>>> at
>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>
>>> at
>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>> at
>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>> at
>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>> at
>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>
>>> at
>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>> at
>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>> at
>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>
>>> at
>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>
>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>> at
>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>
>>> at
>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>
>>> at
>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>
>>> Andre Pareis wrote:
>>>> Hi,
>>>>
>>>> I'm having a problem reading back a previously successful stored
>>>> one-to-one association. During load, a ClassCastException is thrown.
>>>> I have attached two files, one with the model and the other one with
>>>> a snapshot of the debugger showing the line which when executed
>>>> produces a ClassCastException somewhere in the model code. That is,
>>>> because the eInverseAdd is invoked with the wrong object.
>>>>
>>>> The debugger shows that target and value are the same object. The
>>>> eReference value is strange, because there is actually no
>>>> corresponding object for this association to be found in the DB.
>>>>
>>>> The only objects that are in the DB are the parent of the Yahoo
>>>> object and the Yahoo object itself. The load of the parent and the
>>>> Yahoo objects have been passed successfully. Normally, the load
>>>> should have stopped already as there are no more objects to read -
>>>> instead, it ends up as shown on the debugger screen.
>>>>
>>>> Any ideas?
>>>>
>>>> Thanks
>>>> Andre
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>
>>
>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #59163 is a reply to message #58881] Tue, 24 October 2006 23:11 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hey Martin,

thanks for your detailed analysis!

I think I always used the joined-subclass mapping.
In the DB, I find one table per class.

This is, for instance, how I initialize the teneo layer at the beginning of the ClientTest test case:

final Properties props = new Properties();
props.put(PersistenceOptions.INHERITANCE_MAPPING, "JOINED");
props.put(PersistenceOptions.SQL_CASE_STRATEGY, "none");
hbds.setPersistenceProperties(props);

This is only a quick response for today - I will have a deeper look at the things tomorrow...

Regards
Andre


Martin Taal wrote:
> Hi Andre,
> This was/is a complex case. For me it works fine in case of a
> joined-subclass inheritance strategy but fails with single-table.
>
> After some debugging in Hibernate I can see that the following happens:
> When hibernate loads the vendors association it will also load the
> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
> YahooIndicesSeed. The onetoone mappings from Yahoo to the other objects
> use primary key association (see the hibernate manual for one-to-one) as
> a default. This means that when the vendors relation is read also its
> one-to-one's are read. Because they are all stored in one table and
> according to the mapping have the same id column Hibernate thinks that
> the one Yahoo record is a YahooIndicesComponentsSource and reads it from
> the db. Then when the Yahoo object is read it gets the already read
> YahooIndicesComponentsSource from the cache (as the id is the same and
> the table is the same) and then throws an error because it expects a Yahoo.
>
> At the moment I am not sure where the solution for this can be done. One
> thing I can think of is that Teneo should use foreign-key one-to-one
> instead of the now default primary key.
> Can you enter a bugzilla for this issue? Then I will look at it.
>
> As a workaround, does joined-subclass work in your case?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> finally I have reduced the problem to a small test case. You should be
>> able to reconstruct the problem by executing the
>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>> included hsqldb which creates its DB files under C:/Temp/options. The
>> model project has a dependency on an "org.hibernate" plugin containing
>> the hibernate libs but I'm sure you have something similar to replace
>> that with. The model is in the model/options.ecore file but everything
>> is generated. I'm on EMF 2.2.1 stable.
>>
>> One more hint: As you can see in the model there are associations
>> between classes of different packages. This might also be a source of
>> the error.
>>
>> I really hope we can get this fixed otherwise I would have to use
>> non-appropriate one-to-many associations...
>>
>> Regards
>> Andre
>>
>>
>>
>> Martin Taal wrote:
>>> Hi,
>>> Strange. Which ereference is set?
>>> How does the database look like (tables and records in the table)? Do
>>> you see anything wrong there?
>>>
>>> Can you send me the ecore and a testcase to reproduce this?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Here is the stack trace when I run into the code:
>>>>
>>>> 2034641 [main] ERROR
>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>> saving resource trading
>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>
>>>> at
>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>
>>>> at
>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>
>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>> at
>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>
>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>> at
>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>> at
>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>
>>>> at
>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>
>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>> at
>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>
>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>> at
>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>> at
>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>
>>>> at
>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>
>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>
>>>> at
>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi,
>>>>>
>>>>> I'm having a problem reading back a previously successful stored
>>>>> one-to-one association. During load, a ClassCastException is
>>>>> thrown. I have attached two files, one with the model and the other
>>>>> one with a snapshot of the debugger showing the line which when
>>>>> executed produces a ClassCastException somewhere in the model code.
>>>>> That is, because the eInverseAdd is invoked with the wrong object.
>>>>>
>>>>> The debugger shows that target and value are the same object. The
>>>>> eReference value is strange, because there is actually no
>>>>> corresponding object for this association to be found in the DB.
>>>>>
>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>> should have stopped already as there are no more objects to read -
>>>>> instead, it ends up as shown on the debugger screen.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks
>>>>> Andre
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>
>>>
>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #60509 is a reply to message #58881] Fri, 10 November 2006 12:44 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

I'm still having my time with that one...

Do you have any idea what I could do as a temporary workaround?

Can I disable the hibernate cache? Can I add some kind of annotation to embed the owned object in the parent table? Should I use the SUPERCLASS mapping?

I really don't want to change my model to use one-to-many associations only as I would lose the explicitness with that.

Thanks
Andre


Martin Taal wrote:
> Hi Andre,
> This was/is a complex case. For me it works fine in case of a
> joined-subclass inheritance strategy but fails with single-table.
>
> After some debugging in Hibernate I can see that the following happens:
> When hibernate loads the vendors association it will also load the
> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
> YahooIndicesSeed. The onetoone mappings from Yahoo to the other objects
> use primary key association (see the hibernate manual for one-to-one) as
> a default. This means that when the vendors relation is read also its
> one-to-one's are read. Because they are all stored in one table and
> according to the mapping have the same id column Hibernate thinks that
> the one Yahoo record is a YahooIndicesComponentsSource and reads it from
> the db. Then when the Yahoo object is read it gets the already read
> YahooIndicesComponentsSource from the cache (as the id is the same and
> the table is the same) and then throws an error because it expects a Yahoo.
>
> At the moment I am not sure where the solution for this can be done. One
> thing I can think of is that Teneo should use foreign-key one-to-one
> instead of the now default primary key.
> Can you enter a bugzilla for this issue? Then I will look at it.
>
> As a workaround, does joined-subclass work in your case?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> finally I have reduced the problem to a small test case. You should be
>> able to reconstruct the problem by executing the
>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>> included hsqldb which creates its DB files under C:/Temp/options. The
>> model project has a dependency on an "org.hibernate" plugin containing
>> the hibernate libs but I'm sure you have something similar to replace
>> that with. The model is in the model/options.ecore file but everything
>> is generated. I'm on EMF 2.2.1 stable.
>>
>> One more hint: As you can see in the model there are associations
>> between classes of different packages. This might also be a source of
>> the error.
>>
>> I really hope we can get this fixed otherwise I would have to use
>> non-appropriate one-to-many associations...
>>
>> Regards
>> Andre
>>
>>
>>
>> Martin Taal wrote:
>>> Hi,
>>> Strange. Which ereference is set?
>>> How does the database look like (tables and records in the table)? Do
>>> you see anything wrong there?
>>>
>>> Can you send me the ecore and a testcase to reproduce this?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Here is the stack trace when I run into the code:
>>>>
>>>> 2034641 [main] ERROR
>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>> saving resource trading
>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>
>>>> at
>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>
>>>> at
>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>
>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>> at
>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>
>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>> at
>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>> at
>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>
>>>> at
>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>
>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>> at
>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>
>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>> at
>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>> at
>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>
>>>> at
>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>
>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>
>>>> at
>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi,
>>>>>
>>>>> I'm having a problem reading back a previously successful stored
>>>>> one-to-one association. During load, a ClassCastException is
>>>>> thrown. I have attached two files, one with the model and the other
>>>>> one with a snapshot of the debugger showing the line which when
>>>>> executed produces a ClassCastException somewhere in the model code.
>>>>> That is, because the eInverseAdd is invoked with the wrong object.
>>>>>
>>>>> The debugger shows that target and value are the same object. The
>>>>> eReference value is strange, because there is actually no
>>>>> corresponding object for this association to be found in the DB.
>>>>>
>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>> should have stopped already as there are no more objects to read -
>>>>> instead, it ends up as shown on the debugger screen.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks
>>>>> Andre
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>
>>>
>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #60528 is a reply to message #60509] Fri, 10 November 2006 13:20 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
I didn't have time to look at this issue. However today and tomorrow I will work on a number of
Teneo issues. I will also look further at this one.

Can you test if superclass (single-table) also fails?

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> I'm still having my time with that one...
>
> Do you have any idea what I could do as a temporary workaround?
>
> Can I disable the hibernate cache? Can I add some kind of annotation to
> embed the owned object in the parent table? Should I use the SUPERCLASS
> mapping?
>
> I really don't want to change my model to use one-to-many associations
> only as I would lose the explicitness with that.
>
> Thanks
> Andre
>
>
> Martin Taal wrote:
>> Hi Andre,
>> This was/is a complex case. For me it works fine in case of a
>> joined-subclass inheritance strategy but fails with single-table.
>>
>> After some debugging in Hibernate I can see that the following happens:
>> When hibernate loads the vendors association it will also load the
>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>> objects use primary key association (see the hibernate manual for
>> one-to-one) as a default. This means that when the vendors relation is
>> read also its one-to-one's are read. Because they are all stored in
>> one table and according to the mapping have the same id column
>> Hibernate thinks that the one Yahoo record is a
>> YahooIndicesComponentsSource and reads it from the db. Then when the
>> Yahoo object is read it gets the already read
>> YahooIndicesComponentsSource from the cache (as the id is the same and
>> the table is the same) and then throws an error because it expects a
>> Yahoo.
>>
>> At the moment I am not sure where the solution for this can be done.
>> One thing I can think of is that Teneo should use foreign-key
>> one-to-one instead of the now default primary key.
>> Can you enter a bugzilla for this issue? Then I will look at it.
>>
>> As a workaround, does joined-subclass work in your case?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Hi Martin,
>>>
>>> finally I have reduced the problem to a small test case. You should
>>> be able to reconstruct the problem by executing the
>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>> included hsqldb which creates its DB files under C:/Temp/options. The
>>> model project has a dependency on an "org.hibernate" plugin
>>> containing the hibernate libs but I'm sure you have something similar
>>> to replace that with. The model is in the model/options.ecore file
>>> but everything is generated. I'm on EMF 2.2.1 stable.
>>>
>>> One more hint: As you can see in the model there are associations
>>> between classes of different packages. This might also be a source of
>>> the error.
>>>
>>> I really hope we can get this fixed otherwise I would have to use
>>> non-appropriate one-to-many associations...
>>>
>>> Regards
>>> Andre
>>>
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi,
>>>> Strange. Which ereference is set?
>>>> How does the database look like (tables and records in the table)?
>>>> Do you see anything wrong there?
>>>>
>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>
>>>> gr. Martin
>>>>
>>>> Andre Pareis wrote:
>>>>> Here is the stack trace when I run into the code:
>>>>>
>>>>> 2034641 [main] ERROR
>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>> saving resource trading
>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>
>>>>> at
>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>
>>>>> at
>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>
>>>>> at
>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>
>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>> at
>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>
>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>> at
>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>> at
>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>
>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>> at
>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>> at
>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>
>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>
>>>>> at
>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm having a problem reading back a previously successful stored
>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>> thrown. I have attached two files, one with the model and the
>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>> when executed produces a ClassCastException somewhere in the model
>>>>>> code. That is, because the eInverseAdd is invoked with the wrong
>>>>>> object.
>>>>>>
>>>>>> The debugger shows that target and value are the same object. The
>>>>>> eReference value is strange, because there is actually no
>>>>>> corresponding object for this association to be found in the DB.
>>>>>>
>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>>> should have stopped already as there are no more objects to read -
>>>>>> instead, it ends up as shown on the debugger screen.
>>>>>>
>>>>>> Any ideas?
>>>>>>
>>>>>> Thanks
>>>>>> Andre
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #60546 is a reply to message #60528] Fri, 10 November 2006 13:39 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Yes I just did that. It also fails but with a slightly different error:

org.hibernate.WrongClassException: Object with id: 2 was not of the specified subclass: Yahoo (loaded object was of wrong class class
com.pareis.trading.yahoo.impl.YahooIndicesComponentsSourceIm pl)
at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.jav a:1234)
at org.hibernate.loader.Loader.getRow(Loader.java:1186)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java: 568)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1918)
at org.hibernate.loader.collection.CollectionLoader.initialize( CollectionLoader.java:36)
at org.hibernate.persister.collection.AbstractCollectionPersist er.initialize(AbstractCollectionPersister.java:565)
at org.hibernate.event.def.DefaultInitializeCollectionEventList ener.onInitializeCollection(DefaultInitializeCollectionEvent Listener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionI mpl.java:1716)
at org.hibernate.collection.AbstractPersistentCollection.initia lize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(A bstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentList.toArray(PersistentLi st.java:123)
at org.eclipse.emf.teneo.hibernate.mapping.elist.HibernatePersi stableEList.doLoad(HibernatePersistableEList.java:106)
at org.eclipse.emf.teneo.mapping.elist.PersistableEList.load(Pe rsistableEList.java:187)
at org.eclipse.emf.teneo.mapping.elist.PersistableEList.delegat eGet(PersistableEList.java:305)
at org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:378)
at com.pareis.trading.tests.ClientTest.testBug(ClientTest.java: 128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestRefer ence.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:386)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunne r.main(RemotePluginTestRunner.java:58)
at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.r un(CoreTestApplication.java:24)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)

It seems that this time hibernate itself recognizes that it made a mistake.

-Andre


Martin Taal wrote:
> Hi Andre,
> I didn't have time to look at this issue. However today and tomorrow I
> will work on a number of Teneo issues. I will also look further at this
> one.
>
> Can you test if superclass (single-table) also fails?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> I'm still having my time with that one...
>>
>> Do you have any idea what I could do as a temporary workaround?
>>
>> Can I disable the hibernate cache? Can I add some kind of annotation
>> to embed the owned object in the parent table? Should I use the
>> SUPERCLASS mapping?
>>
>> I really don't want to change my model to use one-to-many associations
>> only as I would lose the explicitness with that.
>>
>> Thanks
>> Andre
>>
>>
>> Martin Taal wrote:
>>> Hi Andre,
>>> This was/is a complex case. For me it works fine in case of a
>>> joined-subclass inheritance strategy but fails with single-table.
>>>
>>> After some debugging in Hibernate I can see that the following happens:
>>> When hibernate loads the vendors association it will also load the
>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>> objects use primary key association (see the hibernate manual for
>>> one-to-one) as a default. This means that when the vendors relation
>>> is read also its one-to-one's are read. Because they are all stored
>>> in one table and according to the mapping have the same id column
>>> Hibernate thinks that the one Yahoo record is a
>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>> Yahoo object is read it gets the already read
>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>> and the table is the same) and then throws an error because it
>>> expects a Yahoo.
>>>
>>> At the moment I am not sure where the solution for this can be done.
>>> One thing I can think of is that Teneo should use foreign-key
>>> one-to-one instead of the now default primary key.
>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>
>>> As a workaround, does joined-subclass work in your case?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Hi Martin,
>>>>
>>>> finally I have reduced the problem to a small test case. You should
>>>> be able to reconstruct the problem by executing the
>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>> The model project has a dependency on an "org.hibernate" plugin
>>>> containing the hibernate libs but I'm sure you have something
>>>> similar to replace that with. The model is in the
>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>> 2.2.1 stable.
>>>>
>>>> One more hint: As you can see in the model there are associations
>>>> between classes of different packages. This might also be a source
>>>> of the error.
>>>>
>>>> I really hope we can get this fixed otherwise I would have to use
>>>> non-appropriate one-to-many associations...
>>>>
>>>> Regards
>>>> Andre
>>>>
>>>>
>>>>
>>>> Martin Taal wrote:
>>>>> Hi,
>>>>> Strange. Which ereference is set?
>>>>> How does the database look like (tables and records in the table)?
>>>>> Do you see anything wrong there?
>>>>>
>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Here is the stack trace when I run into the code:
>>>>>>
>>>>>> 2034641 [main] ERROR
>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>>> saving resource trading
>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>> at
>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>> at
>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>
>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>
>>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>> at
>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>
>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>
>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>> wrong object.
>>>>>>>
>>>>>>> The debugger shows that target and value are the same object. The
>>>>>>> eReference value is strange, because there is actually no
>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>
>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>> load should have stopped already as there are no more objects to
>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Thanks
>>>>>>> Andre
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #60568 is a reply to message #60528] Fri, 10 November 2006 15:12 Go to previous messageGo to next message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

because I seriously needed this part of the model now, and after a few attempts
to solve the issue using annotations I gave up and changed the model to utilize
a one-to-many associations instead of many one-to-one's. SO basically I have
found my workaround and it is not urgent any more...

THanks
Andre


Martin Taal wrote:
> Hi Andre,
> I didn't have time to look at this issue. However today and tomorrow I
> will work on a number of Teneo issues. I will also look further at this
> one.
>
> Can you test if superclass (single-table) also fails?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> I'm still having my time with that one...
>>
>> Do you have any idea what I could do as a temporary workaround?
>>
>> Can I disable the hibernate cache? Can I add some kind of annotation
>> to embed the owned object in the parent table? Should I use the
>> SUPERCLASS mapping?
>>
>> I really don't want to change my model to use one-to-many associations
>> only as I would lose the explicitness with that.
>>
>> Thanks
>> Andre
>>
>>
>> Martin Taal wrote:
>>> Hi Andre,
>>> This was/is a complex case. For me it works fine in case of a
>>> joined-subclass inheritance strategy but fails with single-table.
>>>
>>> After some debugging in Hibernate I can see that the following happens:
>>> When hibernate loads the vendors association it will also load the
>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>> objects use primary key association (see the hibernate manual for
>>> one-to-one) as a default. This means that when the vendors relation
>>> is read also its one-to-one's are read. Because they are all stored
>>> in one table and according to the mapping have the same id column
>>> Hibernate thinks that the one Yahoo record is a
>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>> Yahoo object is read it gets the already read
>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>> and the table is the same) and then throws an error because it
>>> expects a Yahoo.
>>>
>>> At the moment I am not sure where the solution for this can be done.
>>> One thing I can think of is that Teneo should use foreign-key
>>> one-to-one instead of the now default primary key.
>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>
>>> As a workaround, does joined-subclass work in your case?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Hi Martin,
>>>>
>>>> finally I have reduced the problem to a small test case. You should
>>>> be able to reconstruct the problem by executing the
>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>> The model project has a dependency on an "org.hibernate" plugin
>>>> containing the hibernate libs but I'm sure you have something
>>>> similar to replace that with. The model is in the
>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>> 2.2.1 stable.
>>>>
>>>> One more hint: As you can see in the model there are associations
>>>> between classes of different packages. This might also be a source
>>>> of the error.
>>>>
>>>> I really hope we can get this fixed otherwise I would have to use
>>>> non-appropriate one-to-many associations...
>>>>
>>>> Regards
>>>> Andre
>>>>
>>>>
>>>>
>>>> Martin Taal wrote:
>>>>> Hi,
>>>>> Strange. Which ereference is set?
>>>>> How does the database look like (tables and records in the table)?
>>>>> Do you see anything wrong there?
>>>>>
>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Here is the stack trace when I run into the code:
>>>>>>
>>>>>> 2034641 [main] ERROR
>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>>> saving resource trading
>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>> at
>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>> at
>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>
>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>
>>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>> at
>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>
>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>
>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>> wrong object.
>>>>>>>
>>>>>>> The debugger shows that target and value are the same object. The
>>>>>>> eReference value is strange, because there is actually no
>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>
>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>> load should have stopped already as there are no more objects to
>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Thanks
>>>>>>> Andre
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #60921 is a reply to message #60568] Fri, 10 November 2006 20:08 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
Well I added the property-ref to the one-to-one and now the test cases pass (the joined passed
anyway, but now single-table also passed). Are you able to test this by manually adapting the hbm.xml?
The property-ref should contain the efeature name on the opposite side.

I should have read your post on 22/10/06 better as you already mentioned this...

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> because I seriously needed this part of the model now, and after a few
> attempts to solve the issue using annotations I gave up and changed the
> model to utilize a one-to-many associations instead of many
> one-to-one's. SO basically I have found my workaround and it is not
> urgent any more...
>
> THanks
> Andre
>
>
> Martin Taal wrote:
>> Hi Andre,
>> I didn't have time to look at this issue. However today and tomorrow I
>> will work on a number of Teneo issues. I will also look further at
>> this one.
>>
>> Can you test if superclass (single-table) also fails?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Hi Martin,
>>>
>>> I'm still having my time with that one...
>>>
>>> Do you have any idea what I could do as a temporary workaround?
>>>
>>> Can I disable the hibernate cache? Can I add some kind of annotation
>>> to embed the owned object in the parent table? Should I use the
>>> SUPERCLASS mapping?
>>>
>>> I really don't want to change my model to use one-to-many
>>> associations only as I would lose the explicitness with that.
>>>
>>> Thanks
>>> Andre
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi Andre,
>>>> This was/is a complex case. For me it works fine in case of a
>>>> joined-subclass inheritance strategy but fails with single-table.
>>>>
>>>> After some debugging in Hibernate I can see that the following happens:
>>>> When hibernate loads the vendors association it will also load the
>>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>>> objects use primary key association (see the hibernate manual for
>>>> one-to-one) as a default. This means that when the vendors relation
>>>> is read also its one-to-one's are read. Because they are all stored
>>>> in one table and according to the mapping have the same id column
>>>> Hibernate thinks that the one Yahoo record is a
>>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>>> Yahoo object is read it gets the already read
>>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>>> and the table is the same) and then throws an error because it
>>>> expects a Yahoo.
>>>>
>>>> At the moment I am not sure where the solution for this can be done.
>>>> One thing I can think of is that Teneo should use foreign-key
>>>> one-to-one instead of the now default primary key.
>>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>>
>>>> As a workaround, does joined-subclass work in your case?
>>>>
>>>> gr. Martin
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi Martin,
>>>>>
>>>>> finally I have reduced the problem to a small test case. You should
>>>>> be able to reconstruct the problem by executing the
>>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>>> The model project has a dependency on an "org.hibernate" plugin
>>>>> containing the hibernate libs but I'm sure you have something
>>>>> similar to replace that with. The model is in the
>>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>>> 2.2.1 stable.
>>>>>
>>>>> One more hint: As you can see in the model there are associations
>>>>> between classes of different packages. This might also be a source
>>>>> of the error.
>>>>>
>>>>> I really hope we can get this fixed otherwise I would have to use
>>>>> non-appropriate one-to-many associations...
>>>>>
>>>>> Regards
>>>>> Andre
>>>>>
>>>>>
>>>>>
>>>>> Martin Taal wrote:
>>>>>> Hi,
>>>>>> Strange. Which ereference is set?
>>>>>> How does the database look like (tables and records in the table)?
>>>>>> Do you see anything wrong there?
>>>>>>
>>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>>
>>>>>> gr. Martin
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Here is the stack trace when I run into the code:
>>>>>>>
>>>>>>> 2034641 [main] ERROR
>>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception
>>>>>>> when saving resource trading
>>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>>
>>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>>
>>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>>> at
>>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>>> at
>>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>>
>>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>>> at
>>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>>
>>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>>
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>>
>>>>>>> at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>>
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>>
>>>>>>> Andre Pareis wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>>> wrong object.
>>>>>>>>
>>>>>>>> The debugger shows that target and value are the same object.
>>>>>>>> The eReference value is strange, because there is actually no
>>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>>
>>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>>> load should have stopped already as there are no more objects to
>>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>>
>>>>>>>> Any ideas?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Andre
>>>>>>>>
>>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594573 is a reply to message #58487] Sat, 21 October 2006 20:47 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Here is the stack trace when I run into the code:

2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException -
Exception when saving resource trading
java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
at
org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
at
org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
at
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
at
org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
at
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
at
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
at
org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
at
org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
at com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
at com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
at
org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
at
com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
at
com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
at
org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
at
org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
at
org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)

Andre Pareis wrote:
> Hi,
>
> I'm having a problem reading back a previously successful stored
> one-to-one association. During load, a ClassCastException is thrown. I
> have attached two files, one with the model and the other one with a
> snapshot of the debugger showing the line which when executed produces a
> ClassCastException somewhere in the model code. That is, because the
> eInverseAdd is invoked with the wrong object.
>
> The debugger shows that target and value are the same object. The
> eReference value is strange, because there is actually no corresponding
> object for this association to be found in the DB.
>
> The only objects that are in the DB are the parent of the Yahoo object
> and the Yahoo object itself. The load of the parent and the Yahoo
> objects have been passed successfully. Normally, the load should have
> stopped already as there are no more objects to read - instead, it ends
> up as shown on the debugger screen.
>
> Any ideas?
>
> Thanks
> Andre
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594581 is a reply to message #58564] Sun, 22 October 2006 13:32 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi,
Strange. Which ereference is set?
How does the database look like (tables and records in the table)? Do you see anything wrong there?

Can you send me the ecore and a testcase to reproduce this?

gr. Martin

Andre Pareis wrote:
> Here is the stack trace when I run into the code:
>
> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException -
> Exception when saving resource trading
> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>
> at
> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>
> at
> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>
> at
> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
> at
> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>
> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>
> at org.hibernate.loader.Loader.doList(Loader.java:2144)
> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
> at org.hibernate.loader.Loader.list(Loader.java:2023)
> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
> at
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>
> at
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>
> at
> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>
> at
> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>
> at
> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
> at
> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
> at
> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>
> at
> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>
> at
> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>
> at
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>
> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
> at
> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>
> at
> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>
> at
> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>
> at
> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>
> at
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
> at
> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
> at
> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>
> at
> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>
> at
> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>
> at
> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
> at
> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>
> at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
> at
> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>
> at
> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>
> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>
> at
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
> at org.eclipse.core.launcher.Main.run(Main.java:977)
> at org.eclipse.core.launcher.Main.main(Main.java:952)
>
> Andre Pareis wrote:
>> Hi,
>>
>> I'm having a problem reading back a previously successful stored
>> one-to-one association. During load, a ClassCastException is thrown. I
>> have attached two files, one with the model and the other one with a
>> snapshot of the debugger showing the line which when executed produces
>> a ClassCastException somewhere in the model code. That is, because the
>> eInverseAdd is invoked with the wrong object.
>>
>> The debugger shows that target and value are the same object. The
>> eReference value is strange, because there is actually no
>> corresponding object for this association to be found in the DB.
>>
>> The only objects that are in the DB are the parent of the Yahoo object
>> and the Yahoo object itself. The load of the parent and the Yahoo
>> objects have been passed successfully. Normally, the load should have
>> stopped already as there are no more objects to read - instead, it
>> ends up as shown on the debugger screen.
>>
>> Any ideas?
>>
>> Thanks
>> Andre
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594594 is a reply to message #58588] Sun, 22 October 2006 20:50 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

I have upgraded to hibernate 3.2GA but still have the same problem. I
have checked the mapping descriptor for the relevant association (which
I think is Yahoo-YahooIndicesComponentsSource).

The relevant sections:

<joined-subclass entity-name="Yahoo" abstract="false" lazy="false"
extends="Vendor" table="`Yahoo`">
<key>
<column name="`Vendor_id`"/>
</key>
<one-to-one name="indicesComponentsSource"
entity-name="YahooIndicesComponentsSource" cascade="all" lazy="false"/>
...
</joined-subclass>

<joined-subclass entity-name="YahooIndicesComponentsSource"
abstract="false" lazy="false" extends="SymbolSource"
table="`YahooIndicesComponentsSource`">
<key>
<column name="`SymbolSource_id`"/>
</key>
<many-to-one name="vendor" entity-name="Yahoo"
cascade="merge,persist,save-update,lock,refresh" lazy="false"
insert="true" update="true" unique="true"/>
...
</joined-subclass>


What I am missing in this descriptor is the "property-ref" attribute
that I find in the hibernate docs under section "7.4.2 (one-to-one)".
Does teneo take care of the bi-directionality of this association?


If you think the mapping descriptor is ok then I will create a smaller
test case.

Regards
Andre




Martin Taal wrote:
> Hi,
> Strange. Which ereference is set?
> How does the database look like (tables and records in the table)? Do
> you see anything wrong there?
>
> Can you send me the ecore and a testcase to reproduce this?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Here is the stack trace when I run into the code:
>>
>> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException
>> - Exception when saving resource trading
>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>
>> at
>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>
>> at
>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>> at
>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>> at
>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>
>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>> at
>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>
>> at
>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>
>> at
>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>> at
>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>> at
>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>> at
>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>> at
>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>
>> at
>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>
>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>
>> at
>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>
>> Andre Pareis wrote:
>>> Hi,
>>>
>>> I'm having a problem reading back a previously successful stored
>>> one-to-one association. During load, a ClassCastException is thrown.
>>> I have attached two files, one with the model and the other one with
>>> a snapshot of the debugger showing the line which when executed
>>> produces a ClassCastException somewhere in the model code. That is,
>>> because the eInverseAdd is invoked with the wrong object.
>>>
>>> The debugger shows that target and value are the same object. The
>>> eReference value is strange, because there is actually no
>>> corresponding object for this association to be found in the DB.
>>>
>>> The only objects that are in the DB are the parent of the Yahoo
>>> object and the Yahoo object itself. The load of the parent and the
>>> Yahoo objects have been passed successfully. Normally, the load
>>> should have stopped already as there are no more objects to read -
>>> instead, it ends up as shown on the debugger screen.
>>>
>>> Any ideas?
>>>
>>> Thanks
>>> Andre
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594601 is a reply to message #58588] Sun, 22 October 2006 23:00 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080200070608090005020404
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi Martin,

finally I have reduced the problem to a small test case. You should be able to reconstruct the problem by executing the com.pareis.trading.tests.ClientTest in
the test plugin. It uses an included hsqldb which creates its DB files under C:/Temp/options. The model project has a dependency on an "org.hibernate" plugin
containing the hibernate libs but I'm sure you have something similar to replace that with. The model is in the model/options.ecore file but everything is
generated. I'm on EMF 2.2.1 stable.

One more hint: As you can see in the model there are associations between classes of different packages. This might also be a source of the error.

I really hope we can get this fixed otherwise I would have to use non-appropriate one-to-many associations...

Regards
Andre



Martin Taal wrote:
> Hi,
> Strange. Which ereference is set?
> How does the database look like (tables and records in the table)? Do
> you see anything wrong there?
>
> Can you send me the ecore and a testcase to reproduce this?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Here is the stack trace when I run into the code:
>>
>> 2034641 [main] ERROR org.eclipse.emf.teneo.hibernate.HbStoreException
>> - Exception when saving resource trading
>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>
>> at
>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>
>> at
>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>
>> at
>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>
>> at
>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>> at
>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>> at
>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>
>> at
>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>
>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>> at
>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>
>> at
>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>
>> at
>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>
>> at
>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>> at
>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>
>> at
>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>
>> at
>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>> at
>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>
>> at
>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>> at
>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>> at
>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>> at
>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>
>> at
>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>
>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>
>> at
>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>
>> Andre Pareis wrote:
>>> Hi,
>>>
>>> I'm having a problem reading back a previously successful stored
>>> one-to-one association. During load, a ClassCastException is thrown.
>>> I have attached two files, one with the model and the other one with
>>> a snapshot of the debugger showing the line which when executed
>>> produces a ClassCastException somewhere in the model code. That is,
>>> because the eInverseAdd is invoked with the wrong object.
>>>
>>> The debugger shows that target and value are the same object. The
>>> eReference value is strange, because there is actually no
>>> corresponding object for this association to be found in the DB.
>>>
>>> The only objects that are in the DB are the parent of the Yahoo
>>> object and the Yahoo object itself. The load of the parent and the
>>> Yahoo objects have been passed successfully. Normally, the load
>>> should have stopped already as there are no more objects to read -
>>> instead, it ends up as shown on the debugger screen.
>>>
>>> Any ideas?
>>>
>>> Thanks
>>> Andre
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>
>


--------------080200070608090005020404
Content-Type: application/octet-stream;
name="problem.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="problem.zip"

UEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAAdAAAAY29tLnBhcmVpcy50cmFk aW5nLy5jbGFz
c3BhdGidjz0LwjAURWcF/0PIbqqbQ2sRqaBDlVJnqcmjjcaXmA/Rf29Vii46 uL17OZzLi9Pr
SZELWCc1JnTMRpQAci0k1gndlovhhKbTQT/mqnLOVL5pQ++dAL29kaNEkVBn OSWP8nVG30mu
sSO1rRlwJY0DdhCeqSogb9p1tiqy3Xydl7NlnhV/2IwAxrUFZuEcpAWxUaGW 6H6pdPAm+M62
l/iE4+jz+ztQSwcI1Ryc0qUAAAAzAQAAUEsDBBQACAAIAEkGVzUAAAAAAAAA AAAAAAAbAAAA
Y29tLnBhcmVpcy50cmFkaW5nLy5wcm9qZWN0vZLPSgMxEMbPLfQdyt6b6K2H dAtVvClC9QGm
ybhN2fxhki0+vkmaVZZS8CDe5vtmvvyGIWL7afrlGSloZzfNPbtrlmilU9p2 m+b97Wm1brbt
Yi48uRPK+IhBkvYxTSd3JiwYbKUzzAOhDiwS5KjgpZEnUtOgja3gY5Xd+lwo gk/UYdC92nuU
WVX5kKJgVXEq1FHHUPbaB2QnFZl0lAo4Qwkg/ayQEkDdkNmhaj41BL+i/Irr FbJnsPoDQ9z9
L3Yvj2jgT6DVGU+eeHEgrNMXcfval35eoMzdyuSVX/uh0/blKjDWmfj9F6Yf 7QtQSwcIDCgb
f+wAAACnAgAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAAnAAAAY29tLnBh cmVpcy50cmFk
aW5nL01FVEEtSU5GL01BTklGRVNULk1GhVE9T8MwEN0j5T94oBuxgDFVB0AM SC2qKGK/Otf0
hD/C+VKR/nrSBEIqtWWxbL+Pe89egKcNRsnekSMFn6tbfZMmD7UvLGaLH3QA 7wboBRzmalLZ
uiR/OAzIqnHrYMn0DBOcroCRohaGgnw5VbFdLUprOBOu/5TjDKMUjxZiXIJs c6WHy3sjtAMJ
fDTirR+x7FJdPbvKokMvIK3taIwvDrpJxWFHBfJR/HkwYGnfSXLV90uTp68q sGRLMB9QHtW6
TpMTJU/f6lrInoEa2IZwCevEafKKnzUxZn3cXAUuNRpLVURtAqPm2gs5PFiN MXSbdt8SpjuK
tCZL0uQzRuya/bK3tEb2IJdZY09Bj+EfXft+vSKbw75ZCbDkqv/6b1BLBwjD bUIGHgEAAIEC
AABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAEQAAABjb20ucGFyZWlzLnRy YWRpbmcvYmlu
L2NvbS9wYXJlaXMvVHJhZGluZ1BsdWdpbiRJbXBsZW1lbnRhdGlvbi5jbGFz c42QzU4CMRSF
T2FkYBhB8Y+tCYlACKNrjBsCCQkaowTXZbhizUxL2hnfy5XGhQ/gQxnLwIaF CW1ym6895/Tm
/vx+fQO4Qt1FjuEiVHGw5JqECSaaz4Vc3EfpQsjGKF5GFJNMeCKUdOEwdJVe BBRGYmkooPg5
sOZYyWBwO9yYBuvHNTEUroUUyQ1DvtmaMjh9NScPeZR87KHgoYx9Fz5D/b8u fFRQZSjyMCRj
GpcMneZ4x5Z7qy+rYyHpLo1npCd8FhFDbaxCHk25FiveXDrJizAMrZ2zGbxH leqQhiIL3RJ3
X/kbZ/BHUpLuR9wYsuGV7Qicw84Fq8XstvOw1bXUyxgotT9QbH/Ce7eQw4Gt lczwAAdTFPGE
Q0v+WowajjLdcVZPcGpPL4sq4wylP1BLBwi8l0RzLAEAAPgBAABQSwMEFAAI AAgASQZXNQAA
AAAAAAAAAAAAADUAAABjb20ucGFyZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJl aXMvVHJhZGlu
Z1BsdWdpbi5jbGFzc5WSW08TURDH/9Pbdpe1IHjB4gWxyBYIKy/6ADEhDSRN amOgITE+Lcux
HrOXZnfr5xJ5INHoB/BDGeecro00NqH7cGZ3Zn4z8z87v35/+wlgFxsGCoRl Pw7dgZcImbq9
xDuXUf9tMOzLyECJsBonfVf4gRykwhXhB5ezwzhyD98cjbII1Xb3pHfQbR0S 6p1pxfYIlUEO
NKdmNdrhIBChiDIvk7GCqvvcO5LZa0LRaZ4SSq34XFgg3LJRg8Vl93XcZNeC jTIqhPmOjER3
GJ6JpOedBYKw2Il9Lzj1Eqm+tdPAHcLWFHnDTAbusUjjYeILxWZxYqGIe6rp fcKu874zA7qn
J88+ypTvuy+ykdqJJILrNGeqqjQ/tGGgSjDHZVmVM9MVe74v0rTxgrDt3JhT iqwTPc6R1Fd8
LX3nk/fZI9jtKBJJK/DSVKQG1gkbN2xAqF138MLyDvDiFvBA/WZ+s5R0tmU+ TailmOMvlzPU
M/cd9O4K9iXmLzR2WyMqWGe7hEXtBWO1MfyKPcTW3Cz+wNIV7k6iW9xrW6P2 KBHLehbiqep5
kR22Klb6ipUvY76ifS//YUs5a+IRHudsQ0f+zx78HXmhiidYzYn1vFt58xIr FxPI2lhlAU/1
uYZnWgzpVs9h/gFQSwcINEAWyeQBAAAQBAAAUEsDBBQACAAIAEkGVzUAAAAA AAAAAAAAAAA2
AAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcv Q2xpZW50LmNs
YXNzvVh7fFtlGX6+Nlm69OzWdd2t27p7m7QNY2y4dZsrvYxg28216+gAIU1O 2zPSpCRpt4I4
nCIKiMhFHQooKlMY0A1IKVOYt6GAeEdAEVS8K4KAd9DnPec0ydLLCn+w35pz 8p3vfd/ne97r
yaNvPPgQgFVqiQs5CnOD0W5fTyCmG3FfIhYIGZFOX03Y0CMJFxwKK6KxTp8e DBs9cd2nd3fw
PhrTfUZ3T9hXt7V9tx5M+HnvwiSFRaOo8oeoyegwAu1hXSHfX3t+XW1dffWO hhaFgobdgb6A
LxzgvuZEjNurFHKMkIKrT4+EorG4wtKGbAA00h2N+HoTBhE0GPEEhfI2cEPE SGxSyC0ta1Vw
1ERD+mQoTNfgQp7CtAYjojf1drfrsRYLS0FDNBgItwZiJjZ7cdIGU40buZil YSamiI7ZGiYj
T+7manAjn+oTXQbBzW8YkzyC0vTmRCBhBGvCgTg3l5SWjTiLRWaduaNqMhZh sQslCp5R1LZY
122B4IWBTn1Zg5HQY4FwXMMSLCXumgZ/XRM5XTi+DQVnp57wk+JCwhmFfmfc ejyrdOTTslY3
OSjT4IGXO/SmqHg2yDNGI9v1i3qNmB4yHbDLhQqF8vFCJ1NWAsiNcviE8VMU tpWOcQh/hIeO
BMJ24FX5/Rkg7bWRKxbsUzWsxmkMLQt2v4JvpBk7tiLmDl8mxiqJKmdE3yPk OKPhkFwnk8vm
/nhC71ZYQD5HcZv1uEqCZ72GKmxQmKnXRCOJAOMxVq8HEr0x3V+roPyCcpOG d2Kzgju9R2Hx
2JFjH9GFM0bP5GF0U9sDcSPYnIa7r3QctG+Cl5ougqwaie9kEnLYeg1bcCYz UT/DRpdx6Ksn
HARvA1q6mq4f5m7UtLepY23ojncy3Ve9FSPxtIMWjucgK6S3aXg3tgt/w5xk 8Fc2ZtBkE+hG
C1pd2KGwbHQBq9TK7Q7eadiJsxmhRrw6EtTjiSiNVY/lrGEbJ3ksFWOXwpJ0 7vrDYb0zEK6O
dfZ2s5zW7Q3qPUKVC+eyIGeXpjN6jXBIj+XhPexY2/Vgbyxu9OklQYsOUVBC 2ksC4XB0jx4q
6YjGStw4BxdIwVkpVLZrCGI5G0kiammUx7qGDnSyuAZ6etiPFCpGK4ojlmww VaKi3Y02XCAW
LtQQBv061wr27Xp3tE+vj0W7M3wWejMV6a3Gcj6iuMiFHoXlE4oPDTEwnvMZ ZH16LK5Xh8jE
zRPPzjQ9Vgt6m4pLr4Ya1OZjD/pd2Mtq/yaVaLgYUxgQISPeE0gEuxjxrPat w3PJ8lHSa+Rk
4sL7FDaOl1UWTTXpQN1pJLpspk0dLlzGYjBKKegPdEWjvjb5dONS7JdY/gCt lZ6c8bG6qfS4
omCMTUmv1TsCveEEI7o3KC2KyTl6g8uAwS53BT7iwodJz/g76wNB1o1+DVfi KpY93d/U3FLd
VFOnsPIkNmxJuvgKfFTDNbicoWlBNp/n4VoqNAUqqcmNfbhOwwory2/QcAne m49P4FMufJKN
9aQe1HAAN3GmCYSyZ6JU5RIkn9FwM25JkWci8UdCButjs66bleNk5GVsrxLU n9XwOdzGzi0D
WaaqylEbwxiapFHswxc0fFHgTe08QVceDrJ5WFwZ1nJlnOtufBnXuXAHm8iE LQkLhzTchbsZ
KSNZqIl290QjDO94c7Q3FmQ4rZsoI9miJjsDGg7jiMK8NDsjTayfIFMjLFis 3afhfjnOvM4x
beRhkK89JzBYEUztqYybm9wYEjofVFjzluBw3jQ38RXiZAnI2SSD+1TyVkdC Vuy4U3007sIx
hTmSAHu7w754YK+vufrsjDb7dQ6qZrQbUZ9/a+qBpNE3NXwQl0uUHNfwiFRJ hxU2Q/iOhkdl
oZAJ0xKtDoebE9HghfbBXHhcoXScapiqSJJ6+XgMT2j4Hr7PKmyOr2bn6Rsl Cd+WlpKLH0or
5LyaF0106bE6mQhWTrC2siZ1pGf9qcO91JoC5KRPaXhaTprfnp4OxObPNDwp NkvGHBvsdwhp
67+QzXERe17Dz2XacOhb9AQHplL/rl1lI4kTb76gYRmWy91vNZyOd4j47zX8 Er/iy1JMj0fD
fQxBxfEsT47W0t+ji95m0VtUOsobWBmHyb/yzTt7LhIT18nH3zQ0oknK8Ksa XpNwcQbDeiDm
wj8YOaaYGQ41UQ6BQfGB7P2Xhn/jPzKNhUIMLE5SdiRk7TVLci5e1/Bn/IWg Obi3BsK9+om/
N6T8MknfEYnLWRylfsn7XJWr8bhKnvjjzcNPqPNF5dJUnrSDSXzZ5bs3USm3 pvLlbdhlxOu6
exL9omCKphzKyZOqaZqaLk/zqGpbLLpXHqPdpWaSupFjY0eHHnOrAlyQp4po pKTUCK0v4YKa
w0FUzeUb9QTnT1FUJYLzRbCYVaG0Zrx9aKc5upoNnzVhrI0sH1ZBqjfM33Ks HzoqZTcW0625
/HPys1h+cQHgkF9NzKsb+bzO5DcNU7hrKr+V8Sr/nOpeTDvMmxzM4KebV2A9 hVahwFwVBTNT
Ylu4IoIzPIMo9BzBtPtR5FH3Y05aRQEFgFZ+1tJuE6bzhUVUaZYg5mG+qbQY C2yllbzKM8cR
LBxI6Zlkrp2fIeuwZZVkjC3rs2WdnvtQlC18UYawMyXMacQWjpOSXF6Xi3Cj xyuHSaL0AC9H
Ud7mceSWy5NBVCaxKn3CIioDZz4n3gfpVDNwGRG93zRWYim0jcndGhoRz5Rg Le+EPma5DWCz
TWcBzaxz3EpvDBDAxmOoTh/FcskNvN6YcZyC1HE4ZtvaGsiQWHd7vI7yJOoa y7O13EIEt2bg
dKdwuuHHWaZmN95FTYKLVcLW/JJN1H4v4W29HdNsvOd5j6PN430AzQew8Cja 2o7inLaC8wZx
PvcFkggl0TUI42HVKHLHMdlDXLsbKTXN63EUVJcPIeIEmedyorH8OJZypU/h IOZZjphpO8Lh
9WZ7YS2DErgThTjEWLqLrN6NdbiHnA6gnuPJWTjCKLwX5+E+7EaSwTBIHz2Q cfr9qdPvt0+/
jmE/fHqOqvbpm5hRwkwxTz3nERPTpW0F+zzOSdTI2JflNNNTTd2PUeZxzMYT GT4rTvmM/dvW
fS2lxDObj+BDSVzd4C34WBIf5+Gv9w7hxhzs9JoPPp3Erd4kPl9wexJfspbu TOIeLt1bkEzi
AW/a/hIz65+i/afJ0DOYw1a0BM/Ci+cYi89jE14wMRVZdm1MLp79KL5iZtNX KZeDh8w0ysHD
+JqJtIVPRKKQ4L7RIGCS+JYASOLb2dn/MuP9FZ76VZaO1zKsFdrWnJiWssae bnNxG2VFur74
DtMrG02urCI0W+rEcBBVMIiaPF6mCe8SkjLXH8Nj3oohfDcXAx5vccUgfpBm ZB7PAbxOJv6H
RVS4nN3Fp3KxSTlNbB7Laioa6vEj/Ni0XI+fYINpv96MC6mxT6bwXmnjXWvj rcjCu9CjsvH9
NIXvmTQ+kzM1FXPYrRaxHVSqwgxca1O41qZwrU3hWpvCxYHDxmWQX3lWIVlq QcNSG5uyPbhV
0o8h9qxTAA3iuawAVgsIZxFWqsUZ7qtIQakwzYr7OKjYZq+y6Vg937LpsSyb kvPNpJNKm8Sv
hZDfmKwMeOYXLxjE79LGzdqqPChW5VisKrFCncIOfmoGH6tTIFabLCjz7g/4 o2loNf7EO+GD
44cN7B5+l5xstIHVZQFbZnJVfgwvJvHSYbmpTuLlwwJwCK8oyA0X/z6EfzIh D3vmlw/iv+mQ
97BkQlUR8kYsU5sYXptRoarpxhqcrmpRp+pQr7agQZ2ZUXwaU8doTB2jEW8w RFl8lPnfBH+N
XSDW2+BXZ4EXx5ZJJzaxqxOAE+qgykkjXcGRAGobkW7HUtVMtDtQplrhUWdj tWrDaeocrFPn
Znh8fQrlehulkuHKxjZgYwvb2PQsbDX8ayK0R8wGV3QcLsdBzM09iFlHzBZS lFSTDsDFBYfj
kATFcTgdh3IPSUE9zhmDlyE1WeEme5mn0Q5lhUqIp+lArerCVrWb41Y4A304 hT48jF5+Z7TR
X0o/yK41nqSaegB5nkE1Y+CoKmiTm0FV2OCdqWYl1eydXgsqb6aXJdW8nd6k WpBVXVQvNLWH
KbMXJaqfpF6MU9QlGVDW2FDmYIFayMQSIiUhctTi/wNQSwcINz2OViMMAAAS HAAAUEsDBBQA
CAAIAEkGVzUAAAAAAAAAAAAAAAA8AAAAY29tLnBhcmVpcy50cmFkaW5nL2Jp bi9jb20vcGFy
ZWlzL3RyYWRpbmcvSWRlbnRpZmlhYmxlLmNsYXNzZY+9CsJQDEa/1J9qVVDQ UVzr4sXZWUEQ
HAT3axvLldaW26sP5+AD+FBiSgcFh0DI+UhOXu/HE8ASAx8eYRblmSq0ZVMq Z3Vsronaxnx1
5mz0KWUfTcLwou9apVrY/nThyPloE6a5TRRHqSlKVpydpc8tq3UdIbQSdtuY MA7nu++Cg7Ny
YyW4rPEk/KfzIyE45Dcb8cakTBj9Oi2qvAgQGlIt+cYTSR8dVLJdBDIh9Ko5 +h9QSwcIRUfF
SbMAAADwAAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAA2AAAAY29tLnBh cmVpcy50cmFk
aW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcvU3lzdGVtLmNsYXNzvZddcBPX Fcf/iyRk7CUQ
A8bEDhgIQVoZBCltk5gEE9tQteKj2Ni1E5qupWt7yUprViuDG5q0SdOkCWmS foY0eeww7fBg
aCKXZCaTTDrQSR8z6bTTPnY6nb52+vXS6f/sLrIiyxT6UM9Ie3X3nnN+53/P Pbv+8N9vvwtg
N96IY5mGDTmnkJ42XWWV0p5r5q3iZHpwtuSpQhxRDXc77mRa5WxruqTSqjDB seOqtFWYttMD
R8ZPqpyX4TiO5Ro2NXCVyauiZ01Y5ritNLRk+h8d6B84sP94dkhDa/akOWOm bVNCei6X92hY
ZuU1xBmQdiUNW7P1AAxScIrpsmeRIGuVPBo17eWCouU9qCGSSA5riPY5ebUC GlbriKNJw6qs
VVSHy4Vx5Q4FLK1ZJ2faw6brs4WTy/f6bpoRwToda7BSfKzXsQJNMtqgoxkt dO9NWYTryC4p
HqF0NeiZnpXrs80SF3clkotyCcQc8Ff0rMAmbI6jS4PRwO1QcD1q5h4zJ9Vd WctTrmmXdGzB
VnIPjg4ODRzSsPHGMTTEJpWXocRridNA/lgpuL0usfhucriZGiR1GEhxhTrs yM7mmKNTPKZO
lS1X5f0NGItjh4buG5VOra0UUDO6kRbFd2k4mlgiiUyRSRdNOyy8nkymBjKc WzwTYN+j41PY
w9IKsGc1pBeHCWur6K9I1zL2SFXFiuq0iBNz7Lxcm6ll3/VK3dZgfxfXahz3 a3igcXrBsoC6
zyl6plUs0PeI5U1lijPKLSnfRxx7Gx/bAKUZ9+FBUXIfA9XuYlABNy2tJNyi wsD780z33E3v
yy0I2zfFNHuWlG5JC9nTPh2fxb1xDGhI3EDSKp6o14J+HNTxOWTYNsbNkpXz c5tJNCil/0cW
EXxBRy/2k8bxppQ7UCTN9psUWsOKCWV6ZVdl+jVoTClaKE2yGHffMomG265v 9jFVcGaUCDWk
47gI1eILFcwL8oiOY4IcVQeVxwaZyIyNJRcLKHv0sI67sE2MTuj4EkZ5Al1V cuwZdlttjFlL
YkOz00q8DYq3tkSDY50cjoPCrK5vShJiQsfd2N6CKZyMw9Kw+b8eQx2PYSXP cc5WphtHge3Q
d+yv6HNsmyGpjLh0dEzjFDusmc/vt22evLBS6tb2JMckSTZkE+NMi61i2LTL 6pOPueq+LVfH
iyXJNprISIOKYFbHDE7LnUxp8Pod+szhazqewJNy51SZLb+uOV8XaExov6Hj KWnOcas0UJj2
ZsXxN3V8FY8TyXMWNHtWx3OysInRjrrOGX/l8zqewbY4znET6oV+qDwxodxm vIDvSHPZ3oSX
SdSVsPL3d8nsd3V8D98XnaanldRwd6MnyKKpwG2PePihePgRn6qJvhuue55B WEJlmxq1L7WQ
zXnQKbs5dcDyXzyCp/JOWY3NzD/CT4zfnfJ6wNehqDzi/Ssf8Lyu5C+d3zwW /JXkVf5i2s+x
6hIHy3A7v5t5Be6hURKt/qw4WFM1O8gZMbzdmMda4zJWvYU2Q3sL7QsuWmkA HOb3XsY9gNU4
4rvSA0PcgQ7faSfuDJ3u5FXuRS9j41zVz3J/bqTGNhraanL+Qtt0aBsz3kRb vbFVYxyrGvNk
hcYlShLhdZsYHzJSkkwFifO8vIPuUSMa6ZY789hZwe6FDNvoDCjze4aCnebc GRLN+sG6Aodh
MBl9mkFkZ7rwGY5EPnb4EOAw90rgOhmm/RrWMOx9o609RjQ6jweoqkwvJHWb 7/scbV7EerxU
k1xnNTn23dD349RLdiLV+TOfZIt/P/isYZoPvYf+1I4rOBDBnJHq3DGPz9eH ehVr8Rq24nU/
lBG4q6aWQhaHfHcpJnLEr5UUjuKLfikeu2WQwSrIcD3ITwhygSA//R9A2KFD kCdCEKMjANmM
4E8s1/u7UMHYnBDNGR2dd87jkQWOoKovox1vsm4rTOIXNSxGlcXwCTR/9GU8 6rMY+ApHwsJG
GrK8xt+SWW/Icm8dS5fR/R5yFahLwnMFk3yH5oCT9hUUl2HkktHRPQ93oSq3 +Kf9fRJ+wFr7
JbO7ysjX6PlXfH/6EPvw65oK7a0S91aJe+GxqqVC2bZDzrP8LTnsCjmTdZyb pAl8ApNg8ziz
wLWR9Qp8RK6P+e/Abxj/t/TyO7L9nqf3Dz5TWxCjyrQrZNKkz4ckb4QkJ0KS 4TqSfQS5hlY5
sFcRj17AhsgFrOOkzFRw9jzinIhGL8qhusoOxssVfF3jVsSiFyMXBfvpi3Ub /kdi/4nC/JmN
6C81qCeqqCeqqM9Um9JZSiyr9lCUb51HE5vlt+fewQujMpjHi9lU60sVvDKS CtA4WJ2s4Acj
qQpeXSi5O9jFgL/yiP+NFH+neP9AAv+kaP+qIdkTkrSzCZxnLkLyY9/H6/8B UEsHCG1pJ2D8
BgAAGA8AAFBLAwQUAAgACABJBlc1AAAAAAAAAAAAAAAAPgAAAGNvbS5wYXJl aXMudHJhZGlu
Zy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL1RyYWRpbmdGYWN0b3J5LmNsYXNz jVVtUxtVFH4u
UDZZVmxDKbS0NFAqSRDWvvhGsBVCaCMxpRCjtNW6bC5h6SYbN0uV/+D/cMZP EWfAyoz2kx/8
UY7n3l0SGhJoGPa+nfOc57zcc//978+/ANxCTUEXw5jplPWq4XKrpnuuUbQq JT3vj0uG6Tnu
roIehknHLenctK1qjeu8vElzx+W6Va7aejoQzNCCIcwzubX8fC6VZriRPRM9 yRCaI9yK5d1j
6I7FCww9KafIVTD0adDwDm2IY4absfhbAIZJ8V0N59BLY9aq8NxOeYO7eWPD 5gyRrGMadsFw
LbGWm2EMYFDBxY5eplcM84VR4hOrvGTVPHdXwyUMEfGmp/HsW6omQ7jMEN3y vOqsrusn3ZmR
in3EaUTDVVyjKJS4dxRjhrux7Lbx0tBtg1xf81xSSXa03ozJdYwpiDLE2ktW 7Z2SVdHTYrEi
58LHcYZEB+iTCkmVjExouIn3KJG2U2IYPM710cY2N71kvCAyG9MQR4ihd05m XsEUw0BTNv2T
yaue5VQYLnhb/M0Mixprng9m26gRl27EqHC8LatGVkyXGx5l/36sU6RStlGr dQ5kQL4Pd/GR
gg8Zrp6Go+FjfELVR4mTa2vT4m5mUdZ3Rrg/qyGJOQbNJ5ayLV6hAr/WvsD9 46RQvKfhPj5v
KK7t1jxe7qjoHycVLDCMN8OUsW1eMux5t7RTJuBG1BQQxaHW6lrYsewid0NY olLMb/GoKVyK
TqpI4aFIY6Yl0UdFWRDRWtaQxZcMCsUiZ5QpBxeJ6wlhAfZIwwoeU7aMapVX igzTbUu9Az+6
WGsMI5NRqxatOF7UiL40bKvos5UJEDa+0lAQdEKe42urmMdDssllohhGTy8Q BU8ZLnfMkYon
oux6zSChI6ekU8H37aH8rKl4LqFqQYrbQgUJpltC4Q1uSdBxzmqXgZisqpKG LVhBp2noj8fO
6mrkw4tTn5AGlkrIzcUir7rcpPothrENRzTr6umvxZFBUl5zdlyTL1mimw+8 2RlmRG1gjDzq
pieOoiteAZqF6E+hf+octJqiUfyUP6D+jv7faNqF8/RVaQRGSWUIF+QuSIFe oEDxR9oRqpN7
iESGX+FKF16DLSf+wflE/Rf0Le9hNLGPG4dg6weYrEvhAQJLBAauSDYx9NOt idDuEKYxjBnq
mx9Ig5dIrp9MvS/lhonzNJ0KT+IN9ndoFLjnEgfQW7nPoocai4DSfCEC7pUA t3A7APiZdoVs
duoV7jD8KkIxAf/XJUn66+vkyqd1+nxWP8T8+iFS65H0AR6Q2hcM+8hFVumz j/wBvv67wSNC
DEAXLYpFegnS5OSDhmtkM+AjZt9gXbpCjTBgtkAyQko9xBMK4LPsVL3Fv8cU htVjeGqAF6LV
t/hO4lF/PIn3nPCMk3hPSfNZB7wNmBKvCB7g3Q5CH6KgbL7GdhOtV+7zY5EP BUhh2LTfhbL0
Oixj65dfzx4qrQhOo+4YfpAz939QSwcIqibAcVUEAACwCQAAUEsDBBQACAAI AEkGVzUAAAAA
AAAAAAAAAABHAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlz L3RyYWRpbmcv
VHJhZGluZ1BhY2thZ2UkTGl0ZXJhbHMuY2xhc3OFU8tu00AUPZOWpA7Tpg9e 5VHaNEBbaE15
lEdL2zRJJUsmRU0UiZXlONPIxbEr20VC4qcgEgsWfABrtixZsmYH3BknFJDa WrLvmZlzzz1z
x/P558dPAJZRziDFsOAEHf3ADoUb6XFot1y/rdeT+MJ2XtltUTDdWIS2F2Uw yDC6b7+2dc8m
2k5zXzgxQ7pkGpVqnWHKDMK2LhzPPYiELjp7hINQ6JWSZ0fRKsNIwrSs2sta vfKcIX9cxq7Y
E6HwHUFZuX5Wo1It7+zWGLhRpglj2yhumRXy9PfQsozyCcLFOA7d5mEshdN9 G7kEWFZSiSoM
rVGq78brDANz8w2GwVLQEhomcD6Dcwwzp7aN4wIuMmjCqNbqxWqJfM6ap2at ZqnEJMdlXKHc
tohLnit8avL03PzJ3dXAcI3jDNJS4jrHNGaoNX8krNqbKBYdhsLxSkddl2qz HBkMSbUbHDel
2tiRWkP4rSCMJG+OQ0t4Cxy3pfEc8YwW0dw91256QrIWObKJN53jLpYZxv9j WUbrRHdHRyf1
7nOcBZd6DzlW+u1KNinXH3MMJ/Wecqz23SfrVrIJ5f4ZxwiGyLPp+qJ62GmK sC7dkD8zcGyv
YYfKXW8yWwsOQ0dsu3Iw8e/hLcm7If9O3xehOhUR0a/Uvz9pRuUG6O5lMCnP idCk7LCKWi9m
e/O0NxWHe+MRtU5qyGGU4hiN3lKUz+Z7jH/ApS6uKjDVRV6BQhe3FJjv4o4C S13cU+BBF48U
eNLF2jvSSGGdvnlZhX2Fxr5hnH2nrv5Agf3CYkrDSmoMG+wLNhRbvpvqW8QW xSzk7iZQSmu/
AVBLBwiHC4QibAIAAGIEAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAD4A AABjb20ucGFy
ZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy9UcmFkaW5nUGFj a2FnZS5jbGFz
c7VYCXhU1RX+b2aSmSQ3BCZKRZF9SQbIVKVICVjDZEKnhIQmIUhsDS+Tl+Rh MhNn3oDBttZa
sS64daV21xZsbYUgA0FFcGurtXu1K3bfN7vZWqs95743My+TmST2+5rvm3fv Ofecc89+782T
Lx8/AeA8ITwoEpgfiQ0GhrS4biQCZlzrMaJ9gXZr3KxFLtf6dA/cAktj8b6A HhkwhhJ6QB/s
pXksrgeMwaGBQMgmDBMgUKw3128KCfiadmg7tcCARgLbzDjJqxOoCMaiCVOL mh3aQFL3olTA
Y+9KM725rWtLa9gLKTCv3zSH1gQCgfH61aq9BcqYfnNrqDF8iReVtCOR1lqk tRmhpXq4ua29
vjlIKi1smtRY0lGGG0LN7eHGcP36JmISYRe5SwhMd+K7usINjIfA2WPwjaH6 9i2toa5gy5bm
doGSYFM4xJMya8J8AtPSQNu2tvbQJoHKNKIj1NzQ0trGoik4Z9joMUJ5zUWS 07xl1sSSXJkG
LM42kmFjchSTFEs9aoaCA1oiITCnKX+ArXXyis/oIXKj19C6B/Q0l0wMJ0x9 MA16jUQ4aph6
D3mtk1xvJIJxXVNwhbVkaAPGboa9a2krQlwk4Kqu6RBwB2M9ehm5MyDxWspO uHlZYHF1zRSi
VkqMF0hMxwyevU5iKarJGU1GVG9ODnbr8XZWm5MyFtEGOrS4MsNGlqxVmpRi DdZ6UDdhTTRq
ETMWH+at1k2cUDZlXRlceIPEalxMilWPL4pCjk/z13SwSeslFmIRzxokFluz Rokl1uyNEjWo
5tmbJPxsutvsNxKl2IQWD5oLlm+6che16n1GwmS7NuPNFJ1szdQU0i+Xta6c dmuTaMcWgfI+
3UxTCKzMY/Zkcus4F7ay35aXYhsu9YAyakEBHv7afByZtwgsKiTeQUoab8Nl El3YTkmg20k8
r7qgalYteNEtsKRwewoMa/2xmNWkPKBcX1yIJrCNv7Y2pYigl7WnprU0X16N Z1E+MiR2YLnA
mRFVa/YS9VmT6jVRRlINJhuUiDLZLCNThnlIB5n0Cok4k5b0xnV9N8Vvhtmv jy04qi3COXWh
cqeYB1VToV6ZmXe1qRZBESns11a9V4/r0QhHZBhXebBbYPZEMZB4G94uMJOz jPIpGTGTcW2g
kexPxvWE1TRy+cmjg7FoIGkadGI1UcrSZlfjGg/eSQU/KbHEu3At9SrakVxd Ha5xZHRL9w49
YtZ5cB1lz2QmkjezvunQoz2xOClcSbiwo8FSp8rBdIV7JvRhvUl11Z00ddLj psJ6ZMiseKWD
MyMz77JUS1i4sb1ssm6cbXkCt0vcgfcKVHGM7IWwOvvZBwsKG+IU8n6JD+CD fFip3E6fM/PZ
/xPWKDPvk/gw7qRctJkdIVhQPTF7uKaDJXxU4mNOCRnn8eInJD6JT9GtJaGb zdqgzmmRp80p
QXdLfJppy5k2sTmu9xpXMn6/xAHGexWerj6M/KzE5zi7K1V2J7uHrAJLcLp+ XuILuI/yUOvp
ydnQzsKaTq6hQxIjLGOaJWOIDsDhIT3B4u+XuB7bPUhRL8gTSiv8Xhzju4ua M9NxiQfwIN01
uHukw9AziRcdyo1D2O7p7OycQiRPSOzELp6dlLgZ23n2iMRe7PLiMb4Jqcxl 7BMSX8SXyG6l
pyPiTxXUNdt8JlSEylCPFyRxCBl/wI/DhMPjXNOZ/ptCk2RDn5TYwy6J4CsS T/MB5qVQq4bM
yK9JfB27rBxSyK50XL9JGbvTajtefJt6qJXbDXqvlhww081UZfgzEs/iu3R3 o2QLtVAOaaYR
iwoMTxb3Kfgxj08KWp7Zmo7e7wucY2mszMroWx/tadP1Hlb7h6z2jwR2/T/U nIKSHjwnMDdP
aTnbuRc/4ZeGA8Oq/0ziPbiB73G/kPgl32Ok7riw8H3l1xK/wW+pEu2zTz1y FhZupw2aqXHt
k+9+L1BkKBf9UeJP+HO6TBxnwoGCPsueL/+T315VEUzpkPtL/v6V7QV/k0hi uxf/oIy3Hjuq
//1T4l94kWy30qhVT8SScW4R617FLTVucwXS7HX8DlOzRoOP76qx96ValswB j0b1uDJWT3jw
ioB/0rfNoiZ6UdHtht9X6SnmkyH8DpyJWShGCUEefjHCS3CZAy4nuMIBTyOY Hkk0nwUfqjL4
Mwg+0wGz3NfkrJ+Vsz4rBz47h/4cBzyb4HMd8ByC5+asz8uRNz9H3oIx9EX8 HlLzxfa4RI1l
/PRTcI09+tVYQb5ZhuUkYQVBF9DIf+XHUHsY57sOY+UhRbyKvtOUay8mt50m cfNxoVrh3+qM
AJ1oWMRCv698BK8/iov84gjq+RPkT8jvOoIN/AlnBc9R2j+DUqRok4fInsdw lrgK54p9ZN2z
aiNpicVGFaVSfgvbWz5HUliNa0ewch9mjKDJVz6K1iKchDiYhU6BpE3PwvtR 9gDEtqPoILqN
brJ0BJeM4q30umIizWaK2EyazVQyAv0kIk3+FPqXpXA5jQM0xmgc8h/MmFRL KQa8QAF6EWvx
EnntFYRFEQZFMa4QJUiKUgyLMrqLVOAaUalMnEm8a7EBCWXiIMEm+shIwfVq GxtQMFDsvx/1
2e04kyFmOzxVbHtK8BXBZl5H1LxWxcyjuJJqZRTvYEe9O1dUjUNUVUbUnglE uQuJWpVX1PV5
TQrmMq/PaxIdBnn0CI4x6cZcUS159bg5rx6hXOZL8+qxN68/QhO7tj+vHrfg VlvU+bYeXkqp
205iTS5/wsHvzfDvyJTgnXYJbiJVNuyD+5DfzSXnd6XwPi5Fjpg7hQ+pSbGa uNVSkDFBIvuI
31+sMCHGhJg4W6x+qn2I6+AVe1AhbsBMcSPmiptQLfbiPHEL1ojbEBS3o0nc 4VB0U0bRaFpR
cZRaLRWuuJA2CacVDft93hQ+7vdNS+EuaiIpfCZbfnbh3bNsFPcWYauVewfp tEjhcAYVykUx
me+I76jLRZaMEpzCQ/R7mH6nfI8Kl9t3xO1yu2iZCR5XBF+mmn6Kfl/1fUO4 inxHaNHtICCJ
TOD7FiO+YyGE73sp/EDNg77Tvh+73Zntfkq4n4/iV/R8/R3vd5pFWdL+oBhC vud9jzr0O0W/
v7Kevr/z9s+P3Z698sLWbEhaqc1A3EUhuZtCsh9V4gBmiXsoLPdihbgPq8UI NorDuEykECW3
3yqOkYuO45R4EE+LE3QpfBgvi1NimnhEBMTjYpV4ItOQKDx26FZQu7IaUhH+ rfZ+Cf9RJ4vA
y/yP4JLS/wJQSwcIBLkHs4UJAABEFwAAUEsDBBQACAAIAEkGVzUAAAAAAAAA AAAAAABMAAAA
Y29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcvdXRp bC9UcmFkaW5n
QWRhcHRlckZhY3RvcnkkMS5jbGFzc5VUf2/SUBQ9bzDYsApuc7pNnVOmwNwK W0xMWEwM2eIM
UxOW/f8oj/GW0pL2oeFbaeKPxD/8AH4o431tQwi2EkJo77vv3HPPPX3t7z8/ fwGo4SiLBQbT
cvvmgHtC+qbyeEc6V+ZQSdu8CBevO3yghHfKLeV6o2ItizTD7oyi1ieprB5D RvWkX6xSl+Zc
bepUeiwdqV4xHJbmrC1fMqQbbkcsg+GGgUVkckjhpoEsbjGkShqQb0pHvBv2 28K74G1bMKw0
XYvbl9yTeh0l03oAhtp8Eoo1GiBncV80bCkcRfPHDhHu1svNa/6Rmzan1Pv2 tbBUPYd13Mvi
LsP+XJ0NbGCTYdXyBFdR9wjBUC6Vm653ZQrLlgNfmKLf1U+/7zqm4yrZHZkR VNvvBkIYtv4j
nKGghzzr0EJ2ZWjZi9hRJzFJAz8ysKPVb4TqJ0vGM+zMJI+cb418JfpJzoe7 SUKeGng2YWMI
HkuIdSQipAPXEV0+tFWDNDAclf5xXFiuJ8yTqF2CgucG9rWCtVBBhB5L2J7B Sh603KFniVOp
H8lm7Fk50J0ZjDPHEV7D5r4v6KjnTxzLdn1CnwvVczuo0luUog8GKxT0q0TR Iv2zWKL8MkUv
sUA/IFfZ+0aXHzC+0GoBeZ0LdhhVvEGBIoNinb2NlSC/irWI5ZjuGrtU+Yrc d9z5PObIBDVv
g/r1EBPV62gL92mf4QEexjNtTzOdJzI9DpieoBjPtDvN9CGRqRQwlVGJZ9qb ZmolMh0E7psB
vkofbe0eC2pAqEO6pqkOfwFQSwcIgFbl7k0CAADVBQAAUEsDBBQACAAIAEkG VzUAAAAAAAAA
AAAAAABKAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3Ry YWRpbmcvdXRp
bC9UcmFkaW5nQWRhcHRlckZhY3RvcnkuY2xhc3OVVdtOE1EUXaeUDi0DRW7K TeUmvQAjIAoW
UaygJA1q2pCoLw7TAwxOZ5rpoOHBL/ADjD/gkw+Kt6CJwScTP8q458JIaZGS Jue611r7rNnn
9Pefbz8ATOCOgADDmGIUpKJscrUkWaacV/UNadtSNSnnThbyctHi5pKsWIa5 IyDIMG2YGxJX
NLVY4hIvrEtEUTB0STcsdX1HUgtFTSqHLdMSg1gw8lx7ICvP5A3OMJipIu2p ekEphkYHlH2h
Wsomw0g1zOF03UDCheZUXbXmGepi8VWGYJpoIqhDk4gwIgKiDNKpjj40EUEz ztjwVobJ2EmZ
lKNT8dUwGNpFCGiwR50i6hEK4xy6BXQx9J9ohogehBjCfHklm1tYSS8yRDOq zle2C2vczMlr
GpnamjEUWVuVTdWee4tBa1Mt0XlPmTJDi1ryJkuGmdspEldHLLMlP5clTSbw /bUtrlip+GMB
gwx9R+uCK4bJpUU3qhEDGBZxCSP0cXhak0uU0sVYPHMMyolINSKOpIAEQ+// 4kSMYoyKZYNb
i36BDRxP/q++QoaTne1cxbkYmhSTyxb3jGF4GKtgLC/+FbtTuZmqlC4P9ChT EUxhWsAVhuGa
SlvEVVxjaMgbB3diqjKnMuMplYqTCZglwZoyJIss2SRjGWo+PEOba1xaU7lu +UzxKl+kui0M
XS7Dcp4IiNWuZJ/HY8/ulCxe8Ffb3VXv2P5yJGtsmwpfUu2r0F211Mdtg+iB WtZ1bjoFxUvo
p1taRy9lAM5VpVHQvrzUC7RDjwi1jTR7QuuM+r7EV4iJ72h+RIOWz2jbRccv hHdx9iM6PjhE
vdR2O1RxAt0l2ntoQQKdSNLeGPpoR3TJcB4XqKcr4iRiC+nEEKA+kSTmt6gP vkv+xMAb9CT3
MbCHIYY9xBgONuvo56t2khYwQ6nPUuopUp1DDPOOYqfL6inao3FIpMlwmf4m XO20px1NfEKb
rfcFk/uYee8LhJy0nx4ijPqEUVwnSZtwDjc8wlFnTmh2lMM4ZEPAt2G+BuTL qsibNSBfVUXe
qgH5ugoygAWnvU22wamTZseH1r9QSwcI5bihzCEDAAB8BwAAUEsDBBQACAAI AEkGVzUAAAAA
AAAAAAAAAABCAAAAY29tLnBhcmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlz L3RyYWRpbmcv
dXRpbC9UcmFkaW5nU3dpdGNoLmNsYXNznVXfUxtVFP5ukrIkrIWi/YFQKCI2 hB/pD1q1oS00
TUtsGlqDqFXaLpsLLM2vSZY6vDmOPvHgsy8dn3TGGWewzuDgg9O3zvhHOX73 7oJQN2SUmeye
vffc73znO+ce/vzr9z8AnIc0EBIYtqvlZM2qS6eRdOtW0amsJNddp5Sc9z4K XziuvWogItC1
Zj21kiWLHnNLa9J2BcxytShL9yz7ibUiBYZyAWg+kO+UEmibciqOe00gHB9Z EIikiRFDGB0m
DLRHIfCaiSNoi6ITxwx0CQy2hDXRjTaBqMzmC/Mz+XRGoDPnVGR+vbwk6/PW Uon0unNV2yot
WHVHffuLEXfVaQicDaL+byFIv71Y9WyBi/Fctb6SlHbJqTVkUpaXaVfrMpnx BEqN5F7VLNWB
N9FnoFfg9KFnTZxGP8WS6ZLVIMEz8ZFmwbRHKkbhzpg4iUGB+02Jeb7/nbZA zF2Vmd3CD7RA
6MAwzhp4R6DvMCIm4hghtExXK67FetVZ7OaJ7gMfNTGGcVZ5Rboayll2ZD17 U3dVVmmRVFqc
E5iMZ/9PlYZxwcRFTAocZYhMYb3GPtqoSZZiOIAhu6dcrXgdk8k5DQVxGe8Z eJcAGl5vqR0T
7+OKgOE0MuWau6EZP1CMp0xcxSmBjqJcttZLbtpqSIVy3cQ0ZuhHIgLH49nA +kRVffxm6T+8
/Awh9yfUlTvIMGXgtkBPwI1IlxxZcRXZrIkPcIe1s8nSW6bm8aBr5O0GyayA 7prIY44kFFC2
SE+W0rublwLh9vsEgRq4zwZtcdBAITjDwkbDlWVF7CMTC/jYz9Bbbpahtxt8 b0z7QHuKLC+1
7evVe4hcdKvLBttADa4gXOeAVoMtpSJgw88iMK6fBN2q/i2PFarrdVvecvT0 PDAIJxQjDFKm
MP+bkI2a2LTaaRv6GeXXbb4F38cSvyH2HOZLRJ/j6K8wf+FiCK/z2Y0InxN8 JhHDOXThAt7g
iukdxHGc0AFO4pQPOs2QIeWRGN1Bj8DoNga29vDa9LkpjXHC8/MxlPUWhrgf UVPSR/ueaIrB
NMHeFiDJH9CpkBMCY9uY2KJ5XiA/voNLAt+hI8HV1I/oToyHd3AthBcYHjvA oJ8CqNRNzJLz
HQzgLsdcnrnN4TpymlnCi7nHbBo3kNbMpzXHEE8N4iYymh3nmMdWzHDnCL02 e3/S576G96fy
7OXvBn+LYy9wK58Y38bslUhP5CViys7t2oq+srfodi/fdOtDvTV/KIK2/kn8 BosHfIY+LJL8
Qyb9CJN4zJQsJlekHJISLNNjhbtrsPGEzxKeooyvUME3qGlxPteF2dwTZxOf 4FMtzqYvziDf
D4gTZoxe+i9SpFl6P2TEMGN0+ms2/R4zephxdv2Emlt+8S/zraQLiVcb6Mt9 DRTaYxLCEqOq
nubIaonxbVOMRxqD06UlxrOmGJbGuLp3LZpj/NwUY0hj2Pqr+DdQSwcIVZLE AkYEAAAaCgAA
UEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABAAAAAY29tLnBhcmVpcy50cmFk aW5nL2Jpbi9j
b20vcGFyZWlzL3RyYWRpbmcvdXRpbC9UcmFkaW5nVXRpbC5jbGFzc7VVS3Mb RRD+Wk8/NrZj
Rw7CtmzHBCQrzobwCJGEQDFxCBEyYUUofBtJE2dTa8nsI4UvXPkN5k7lGi6k BFVUOMCBc/5B
/gfQM6sIx7bspCrRVu30TPd0f1/PN6u///n1dwBvo55EhLDU7GyZ28KVtmf6 rmjZ7U0z8G3H
rIeTr9hOIkaYuCvuCdMR7F9v3JVNn5Ao2W3bLxOi2dwtQmy105IjiGLYQBwJ wnjVbstasNWQ
bl00HEmYrHaawrklXFvNe4sx/47tEc5WnwNKkWB40uHyFq+o3TJb1ch0ZNX2 /GK1426asunY
25405dZttjuuNK9WfN+1G4Evi9X9XIq5QZt6fsKwZW+2hR+4XPOH/TVL+WP2 l18JqlFMIZXE
KcLYs3gMTOM0Ycj2pSv8jkuYzub2YL7eW+cMacwk8TofzUGvgVnM8fm05Xd8 2qeeZtiLMIl5
wtyRKEeRwaKBM1jiVPKa5FTl7CBilu8GTW6ycNakbnbxkKJKY2cNvIm3WIPy 20A4LJ9U9pD+
bSh+OQPLyBOSd4RX01RYrxsMxuFOsbD364c9gg+FcOb4MyPE7wkn0NI+UJ5A NvftsL4TIrJD
mD9WdhHBYdPPXpud7adX5+KL67B/ga7sqESEynNfoFVHeF5xI3ewYd+X6oWD /Msv8ZoMqF2q
13lTEh8Spv73VFxX7Cj3CEoYVgL82EAFV5RcdCLCQnbg5QpLjeITrCVxlTB7 VJyBa/iUcML2
rGCbv3Pc0vXbhMWBCg+zK2VO4TMDN5SIo6LV4qNuOoTM0fsIJ+120wla0goa ekkyGWI1J1zp
BQ7rOXVoiwgjVidwm3LNVsKZ2PNNPa/isQjGAfWLssXfb34neWbySDzGlx9i 6Gc2Ihjhd0Iv
jvIDGGEAjyd4HMYYxjlqQsee1En+YCvBY3G5i0lC7T5yK128RniETCGWjuW7 WIigEE/H/8J4
On7uF7yxi0Q69oCjsoQf/31MDzQyVTqjU46xPY4Ul5nnIiuYxAVeu8wrClI5 LIdz7IG2zmsm
yrrAf34RznGRn3c4ZwozeBfvIaYzvc/eOC71aakcH2hal1Ho0ypqDE96tKzf UPrmIcq1kF4h
dh+X0rE+QabVxUeE/E84PbuL2Xxv3sVqBLswVtT8egRfqz2a7p8r++nOYAhz LJkMg5xnegus
uzncxNIeulafroUqPtfwLdSwzjCHWGlfsDfKBCqauKKb1cRDutMcFeZQdMP4 m1oMX2rK1n9Q
SwcIgMt2nqMDAAA6CAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAAA7AAAA Y29tLnBhcmVp
cy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vWWFob28u Y2xhc3O9WWt0
VNUV/g6ZySTDLY/wkEeECEGSmTwEo5iHmhiCjiSAREKDoB1mbpKLk7lhZoIi WhSr1WqrolVB
EW2rWEs1oEzEVEXbYmtr3/VV+35p7bu/6+q3772ZDJNJTOhaZK0799xzz9n7 +/a3zz7nrrz+
0QsvAViCDzyYoDAvZHZX9gRjuhGvTMSCYSPaWbk92GWale3y64FL4Uwz1lmp hyJGT1yv1Ls7
2DZjeqXR3ROpbFq9eYseSgTY9iBXYX4We4GwHk0YHUZwc0RXmBhYflXT8qYV DeuaL1coaN4S
3BasjAQ5rjUR4/BahQlGWOE0Ixo2Qnq80ezuMaO0EG81e2MhWljWPDroQPaJ NDzRsdmq6/Tg
H5sdGcy5eXWMQNRIXKCQU1LapuBqNMN6PshBgwd5CpObjai+qrd7sx673OZa 0GyGgpG2YMzi
7nTm1llmvMjBaRpmYLLYmK0hH3nSmqvBi4nSOl2Dhk/QUaLLiCsUfQxcYtT0 1kQwYYQaI8G4
zCgpbc6uXZM1ojYfC7HIg2KFitFtrwmGrg526sXNRkKPBSNxDWdisYK7veGS 1auZRaO74cBO
PRFgyKcTURbB3XH79YyS4W9L27yMRbmGClRyhL7KlFwKkaYZXatv7TVioiUl 2eDBEoWy0ZI1
fa6krBdn4WzRoEphTckIJAJRco4GI06q1wYCaSCdvuE9NuxzNSzDeQoeG/Z2 hcrhbhj6bjNa
GbVGVKZjrJU8c0f1ayQ4bjMSlvscieVIa6OaAT7Z1TF/czBuhFpHsf5QyUka Hwfnxq6gQeLj
njER9bjIgwaGeJxTNTRiOVMoGA6PW58N1EP0GSliru54J1fiknHToV3ReyS7 WjRtBpfvCLmb
Pe3FeHwUmWtOVubSNg9WKZxzUrMnYg3WenCZwqIxLUQNreAOMkkPRLfpsbi+ Vu82txH9vjEv
5LRVaxeqU5Kma9CmYb1AnzgIvSEclmrRruF8XCCJfIWGjZjMTSdsxHuCiVAX eQ4te3v7Kh/r
Unc2sGkZy9u2ctcYtbaMnIL4kOjQerIhThpaCE5HPINExXhISJJ2KJSOeYZI 06XhKnxKIZ8q
NEYMZi335+wC2K9rZQePaOgGl+c0vdGMJkhPj63Qg4nemB5gwVEBsdyjYSti Ct6hMQpnjLxz
O8nrARHMHtE9gzQo92DHzqxBctCeAmWF7LUatuM6Hoz0iwbRDZG+c+wL91Tk YT7zcDB2c0cJ
HUfGh6I8b7Qo24eCGzXchF0ShEFiaUEoHVH5zCh48Rnc6sEtCsXZJ/QmDBZ/ aa5jS8NncRvT
zIg3RJnYCZPOGkaK+KCPj3ktZ67PKSwYqqOBSETvDEYaYp293WTcdG1I75Gg enAnj/SZh7uL
eo1IWI/l4Qv8ylirh3pjcWObXhSywyEGiihQUTASMa/Rw0UdZqzIiztwtxzZ /BLK3RruRSnr
ZMK0LcrrL2q4Hw/woB3s6dGjVqXMcqwc1uWAqRUTu724HXeLh4c0PIx9XGp2 xtqbzIqY2Z2m
WXg8Z4b/Z/ns19CLbfLl8JhsIVxIeWaiS481CcvFY8wb5mvHYBESU0/IRkpT RSMydGqWDP6q
hgMSDpd+sc5sP60ksGFD6fDTr4D9uoYSlErrGQ21qJPWIQ2bcKW0ntVgYIuY PKLhKXyNZ+SY
HjcjsoMrnqryBPvl23vkDKW3iq+ZJVkO3lLMv6EwJVNMcfGSBp+dJsc0rESz tF7VEIJV0b+l
4QZ8WgAc13AUL9AlF3xbMNKrn/hZmgpbrr4uGhckrpKArOQcfF/Dd/G6vAnE WwffbPBiAD/S
8GP8RN5s7eX3UsanTWr5iJGfaXgDPxBIb2p4Sz5y8mhuTcy8dru83u3BuyQ/ PFs7OvSYF+/g
7jz8ko6KSoxwTZF0/Fry/zf8FBpj2ouhWpn4O5n4e1a7ksZRx+2mO4rVGyHj WSMNZKmxz3Ur
DPnq9Vq7aoUMxhnkmsPLDRcK5dsZYCvfufPr17rz25f3meydhMkcPYVPpbzL n1s9i6mH2JiA
afz18g5+y7mwGNOtXjEwIzVtDXtk4kxfP6/DmHoEs3zqCObIT+GQnZmEBLRx bg1BLOfcVbSy
3rKp2RYwD/Mt60UWDbFewbu8cx3Ggr6UrVyr76q0uS5nrpJ14cytdOa6fc9h VubkrWmT3anJ
zGlncpyxyeF9kUxu8fmFVRJle8hxAGe1+1w5ZfKmH0uTOCeT5Q38/TQjtxNT cSOKuSWJsyLb
oONMWtV0IlIVMSZ5Vhy5lrOgn5OJ/r6s6HnAdSbvpfICpEomrxL0c2z0xTZ4 V7mfyGtcZa8h
f7ar5QC0stmuo7hwAtaXDfmaQ2/APlp6hGT2k8yj9PQYluLLlv8q20eKUBWa KK2yWitwMa24
SeMS9uVwxDQEcCmFUlIvHJyvOlHe6Begj+NC1SKN4yiQm89V0FJ2FKvdaPEf x2S/87yOzz5/
WRKfbCk7joXsYU07MMhwmqOPy+/PFKfCyv5n6LOPfA6Rz2GG/lkK9BwT/AiW IcnEfJ74juIK
vJAm2sYUx40ORy8lszkqKbtZRCvMFO2NrKLx6JtFtEJLtMITRHOPQ7Q3aekt gnybJN+hp3cp
2nsjiBZkMcgUbTP7ThSNpT2baIWDohXaohX63AX6CaLZzynROkcTzT2SaO/T 5wfk8xfy+ZCi
/JWi/Y2i/Z2i/YOi/Yui/Zui/WcE0WyO6aJxh3T41DsVTOBfnbufBbCPqMxj iA9F1aqCKhde
5UlTsSClIo8OjrVmRku8e33+XNK9pqUs08oU5KmpaTi9KZxe7MD1lmVvCic3 UsfyP5247/IT
3s4nMNnBu4lxbvf5n8fNezBvALe3D+CO9oLP9+MujrsnifuSeLAfe16mTJx3 HPk+4tqbUiee
rs4jo6mTO1ydc2UjUadjupqHQjUfy1QRqtUZqFcLsEItxKWqGG1qETapM7FF lWCrKsVNypfG
fleK/S6HfTWWpNjzIOaw/9Da0oAdhU9Zo2NW3GHZmMurltcV6cVjykeq3MpD LqVjaClnvehL
z9Mp/01/r/N9Z99ggPiw1+qOs/VIn89fWN6PR4eEtJJSLSXlKixU52CpOhd1 6jw0qmqsVTXY
qOoQUufDUBcgruotuj4bforuDnyJdVRZra8gam2sOyzisn+3pojfw3kys9oh flYG8QW8Sn3K
5qdsGioN9uNDsK3dSQUIeyVht8CnVmOJuiwNXnUKXnUKXnUKXnUKHg+qDjyD NuVduWSjjRAL
HXhyTZeYSpr5rWATVD+eHII0SQapDZilNmKxutKCMtM2mIJSbrmVysrDrOP2 QScqdXNtn2fb
ni2XMqtYoiJK0f1B0fVp+emTn8N9vrmFp/fjuYyiqTpRpAwsUlczMN08LJqo UlvTglOXQlRn
hURZrST6Lbx13Dn6reDwxOugPMRnQbTSQdmYgbIE8u8ioMZXdgwDSbx4SBot SbxsNfQkXrEa
8SS+ecg3t6wf386ojOo6gr4eJeoGfqvtpJo3Mhl3oUbdjFp1CxPyVixXt3Ed 3p625lamiKxM
EVmJ1/Ada83x2O3Af5jPQq3egV+dAX+xJQ6DL+c+C72yoCsLt7JB9+N7mZjv IeZ7Kfd9xH0/
ytUDqFB7cLbay4A/zPqxj/j3c195NC0d6lOY6x3MSs72DtJ+B6npIO3KQHox r7W8NhHoa1YB
mHUcHtcBzM45gBnslJ4kfrgHHna4XAftSuJ2Hcw5aBcNu8nsGWyS2E8PZmTQ kyT2FC5RB9Gq
nsaVqo8V4HAaCTNFwkyRuDd1YL2ecGVUFd38fA/yeKJ+u28A77RLox+/aPYX vJfEr9b7bbBs
TClN4rfr/Un8ITOXB6CpF7mqXsJ89TLDfIz5/EoaksEDwCx+JfwRf7KQ/Nmy 8f7/AFBLBwhW
HHfPYwsAAMccAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAAAEIAAABjb20u cGFyZWlzLnRy
YWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy95YWhvby9ZYWhvb0ZhY3Rv cnkuY2xhc3Od
Vm1XG0UUfoa3TZYVaSgvbRHTSksShLVv1hJs5SW0kUgpQRRtq8tmSJZusnGz 0Eb9G/4Gz/ET
4jlg5RztJz/4ozzemSxJDiEQm3PYnZm997nPvfPMXP75948/AVzHjwraGK6a Tl4vGi63Srrn
GhmrkNXLRs5x9HXxXDBMz3HLCjoYxhw3q3PTtoolrvP8Jo0dl+tWvmjrCd8w SROGIE8upVdn
luYS5JVqKUKcITBN2AXLu8fQHomuMXTMORmugqFbg4a3aEF8ZohGoi2CBsn5 bQ2d6KJ3yirw
pe38BndXjQ2bM4RSjmnYa4ZriblcDKIP/QrON802sWyYz40sH13hWavkuWUN Axgk8rWMo6kW
XeMBXGC4lvO84pSu681SmpTu3cTskoZhvEP1yHLvqOIMtyKpLWPH0G2DPNKe S47xphxqlXkX
lxWEGSInWxbt7axV0BNisizHItMrDLEm0I0OcZWCjGq4imu0pbaTZeiv5/po Y4ubXjy6JvY4
oiGKAEPXtNSAgnGGvppt4qXJi57lFGgjvRyv32Wht9rX/tQJTsSkHRESkJez ShTDdLnhkQLu
R5rVac42SqXmZfSpd+MWPlRwm2H4NBwNd/AREadtk3Nr0+Jucl7qPCmSn9IQ xzRtbIWYzI7h
ypk6jwvnexru4xMyr3NOFjKWyUtzTr7oFHjBK6WdbdekjO+eidnEVYaa1TAH 4j3QGCrNeYZh
olV4YR5XsEC0a/uVtG2eNewZN7udp8jV7VPwkGHwuMhnty07w90APqXCreZ4 2BS1DY+peICU
UNNnx/R2dDbWxLY90rCMxwwKbcqSkafSnCfuDcYCLK1hFZ+TbIxikRdklied uCb86JR/wXBp
LGyVwgXHCxvhHcO2MhW2UgkixrqGrwSdgOdUvFUkkKKYXCqGYeR0pSr4hmxO L72KZ+IQdJYr
8gqfJS4FlOvtN1KLClOEGi6fKsY7byhFBRZdsy3rTEVOkOktN8h1/H+ItXJ+ 5bJ/kbfSiXxT
eXqKGr6D61/fVQxxyk9vGJSvd2anruKphF6bzPOiy006q5kgSngpemH57KZ8 FJgAKiVfsETD
PFd/7U4KveMy5dVO/08wXBBtlkZBBKDQH13LNBunt/gpv0P9DT2/0rANvfRU 6Q2MkMsgzslV
4Upt3nd8QSvCdWwPodDQK1xsw2uwxdjf6I3t/ozuxT2MxPbx3iHY+gHGdqVx H4HF/AAXJZsI
eugmCNHqICYwhElqSR/IgANk10Oh3pd2Q8R5gr6KTKJV9jfpLXA7YwfQj3Of Qgfd2gJKqxgR
cJcEuI4bPsBPtCpsH4+/wk2GX0Qpoqj82iRJECFglFK5u0uPj8VjZvcQifVD PFgPJQ+wSL5L
DPtYCa3RYx9fHuDrv6pkBigE6FoOY546bYIyXYCOh9UcKbhPTIye4KnMidqN T3GWbISVeohn
VMlvU+O7xxJdoXqk6/BUHy9AMwMbEo86UCOeSXi8Ee8JeT5tgreJrMSjNtOI lyO8rUa8TfLM
NsF7Dlvi5VHw8W74exqgQjuvUaqhdcn1Yt2WBnykILbJvw07sooCZdTXdcce XhxH+L4qaEZj
MfrhP1BLBwhv6ocCqQQAAHYLAABQSwMEFAAIAAgASQZXNQAAAAAAAAAAAAAA AFIAAABjb20u
cGFyZWlzLnRyYWRpbmcvYmluL2NvbS9wYXJlaXMvdHJhZGluZy95YWhvby9Z YWhvb0luZGlj
ZXNDb21wb25lbnRzU291cmNlLmNsYXNzvVhpcFPXFf4ulpCRH5swuwEZs8iS jOJASIghYIxJ
FLwAwqamgPuQru0Hkp54kgy0NAtNQ9ukS5qQxFmadAttQhtDEglwGzLTKZnp r06nfzudTv92
uk37s8s57z0/CXlh+RHP6L2re+855zvfOfecK//mv9c/BtCMGx7MEHggrqci GdWQWjaSM9SE
lh6MnFGHdD3Sx89oOqHFZbZNT2X0tEznsjE9b8SlBy6BdboxGJHxpJbJyohM DdBYN2RES2WS
kfbuY8dlPBelsQczBVZNYiaaIIXagKYeS0qBmuiu/vZd7btbezoOCPg6jqvD aiSp0r5YzqDt
LQIztIRA9VaymNZyjwhUBRp7BVxtekLOgsAcBR5UC8zt0NKyK586Jo0Dlm5f hx5Xk72qYdqy
J2duNdV4UYUFCuajhnUsVDCLdbhyQ1pW4MGOe6KHsCoyllNzWrwtqWZJkT/Q 2DE5Xe3mjpZZ
WI4VHtQJbJje5F41fkIdlGs6tJw01GRWwUqsIoL7Wh/r7u6Pdu2KtrXH+tu6 O/d2d7V3HYj1
x7p79re1C6ycHoCAe1DmosRwLWGdhH131lpeGJi42tjrJfLWKliH9bRDdukc 2DgRoKf3y5N5
zZAJM16HPGgUCE+XOeWynD9eBBDiAIUF9gamcCKaJjbSatLOu5ZotAykPTdx xoK9QUEE9wl4
LNhnBCITzVBQUno6kjZ3RMoxtnASutPyFJPj1pMJfs8iLntlOqEbAquJz+lj 2sKpt1nBg3hI
YIFs09M5lXLY2C3VXN6Q0V0CIspQH1bQgq0C3tIegfqpc8v20wM6LSunx0Dn 55ia1eKxEvBn
ArfDfRc0tQ0R3JaJSG8nwW7vVNAGIsEnd9oQy9x//o5z4jNAS5GnTBgn0H87 /qjQpLKDVB+a
78VSthSqhtuGysr1DgWd6GImx9kpY7JxykSqpNKLvdjvwT6BNZML5HMaHWUe 9tBIQQxU1L1a
tjVN5TLHiFunCtu4jdsscymhg7e6dKijyaQcVJOtxmA+RbW4/XRcZpgvDz4n sLiyZu3Ma8mE
NKpxiDrZfhnPG1ltWPrjFh2swE/c+9VkUj8lE/4B3fB7cRCHuRI1MJVHFfSj nhpSTrc08rKq
4Bji1FzUTIZCI9A0WbWcMGWDaWEVR73owWG2MKhgCJrAUivt98uUPix3G3qq LGaJuylV95rV
NTiBlAdJKvF3lB8K0qCCUkNJNiyNrGxNEBNv3vk5LdFj9abPqMycVLAdO2qQ Rd6DHLWBu1Si
YBg1lBAJLZtRc/EhaqVqInFAb00mYzk9fsK+LXhALWZ9yceedDafyehGTia6 M9TTWZ+TvF6c
xgK+o5xlUqkGVuu5IWm0c26tv0NCqVQMlDrJnPGoWPnEus8peIp1+6dMNLsT cSJ8lTfrLHZe
wVc4P13yUUl0LQ5EDx1qnNhlmdrnFPhRz6NvKtiITSz+bQVfw9ep7xoyqyeH 6Uom6CxWswsH
zmQk642x3kWBSZp5Y68HLwvMqzxJbOJVBautM/qagigeZ2NvKHgRL5F6Ls9q Mi9vvWM6TM2U
FA626gpEuWRW4QcK3sLbvBLNxsZXDnlxAe8ouIif8MrJPN3EKq5GTp1iJe8q +CF+xJAuKfgZ
X5KqSd1eQz99hpePejBKjk4sCwMD0vDifRyuxgdkyB/QEg/7eeIjLjQFukrd YX1hRS0seJUF
rwksD7RNu+8omaPA5JPk8ZKpNlJNt268uzW+UtdPdynewDpQTxRU0ceNGajj +zr9FnHxnZve
8+npRQ2tKvStkd785xYfYPZlGszAXHp66Q2ESagB88xZVjDfEXuEZlhQCRbh C17B7I9QW5Ke
Q8Z5jwubSWK7qUGx9mMRFpu6lmCprWsDvXnNdQXLRh0dM825R8tkXbas4CS3 ZSO2rDv4IWor
hfvKhN2OMCWtLZwlJhjoWhbuDIbIh2ABa0awKDiGQF/QVRXmlSJotqnk3SJS Bkh6DhBPg8TK
ENZAM435LYW2MR41kxEOhB/304hZo4NpA9hhs+gjMw+43qIgjJKpLZ9gW8kV KxJn6f3lMnd8
jjtUS21tHcQQW/cGQ65wAa2d4UotzxKC82U4vQ5OL9qx29TsJc4fM3HRmbY1 /90m6lyI4O15
B3NtvEdCN9EXDF1F9whWjqGnbwwH+3x9RXye9h0p4AsFJIqQN0Qny93ErCDh GugkqbmhoMu3
LXwNx90g5mk60xm+iQaaoXZ7EcusQCywA+EKhSqjsBmz6fkiavESpfgFutW/ jC14hdh4lTwZ
IeyvoRev4wjewHF8DyepvjyNt8u8P+d4f872fgtFa9z7U06u329HqXoMp8m3 L96oSLP3yuJS
7cSF2ogt/xzFxUXvjXXvmtaC5rr1WTBOTBMR0xUMUehplBkNhuqaivhSKYBW 0lE2okC/YYt0
AK4ihOum6aCl3nFnI6XKE6b6jXgSD5mh32g6xjXhKQdY1gbWYANbdgswUQbk 6RIQ62z/ioD8
moB8WgagwQHQ4ABocAA0OACom9kANLNAAU2cTxYG2lcCwcdxDydK6BqecYPA FPFsJZTfUin5
Hdbj9yaURZZCB0qTaZaLBHVB2+wTtt/B5ZbNesuyaZKl6sjsN/gkPj8aXF63 oohvlWz6TMk/
kM0/YgX+RNXkz2UUBB27QdNxYY6+gxdMVEF8l0ZMATVJG8t5+s5eNNtYGiuw +IPhT3ChgFcu
82BbASOXg8vDRbxeOgkrqcADfyFIf6XM/hu58w9S808y9y/ch3+XZXyzA6/Z gdeMN+l0cIZT
/7VBnabvZv23Qa2tALWKK76JSViAivh+JZ7/EJ7/8f9M4BczsFZUYZ1wIyRm loUp7OAJ23gE
N3AbxQs2in02iscrUGwnEJ+atbP2Jjyui1hadRELaZJnCvjxCDw04XJd4kje hNt1qeoSQ/3p
pVujKeZgiZiHHcKHPaK2DN4+B94+B16/03rOEqW8axOpf28E1dQJfz46hvf7 eFDE5Y6Q70oB
Hx4MWXBoMK+xgOLBUAHXS/m0jIoIxAooYhWh8BNh9QiI1YiIhjIkm2wkS6jU jeEXJpJfmjo+
/j9QSwcIC4EakvwIAABqFAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABG AAAAY29tLnBh
cmVpcy50cmFkaW5nL2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vWWFo b29JbmRpY2Vz
U2VlZC5jbGFzc72Xa3AT1xXH/xdLSIjFUBmDjZwgsAFZshGEFhMMDsY2IGIb ioyJacCspbW9
RNaalQQYJ2lL0idp00f6oIHSpm1oU9qalxTiBOiLNKR5tNP2e7922k6/djrt 9Jzd9UrINph8
iGe8e333nnN+53HPvb79v9euA1iL912YJVAb04bCw7KuqKlwWpfjanIgPCIP alq4h5+RZFyN
KamoosRdcAis1PSBsBJLqMMpJawM9dNY05WwOjScCLft6jusxNIRGrswW2Dp FKojcSWZVvtV
uS+hCMyNtPa2tbZta97b3iXgbT8sH5XDCZnWRdM6LW8UmKXGBcqjbW2tvdGe jq272qMFEvNa
tGQqLSfT3XIio7gxT6DiYGfrY/6DrTsj/Gj2H+zc6T+4Pbq7haylyIvoyFCf lkgJuDeRF0k1
3SRQEqjtFnC0aHFlDgTKJLjgFpjfriaVzsxQn6J3mbzedi0mJ7pl3eC3Jmdv MtR4UIIKCYuw
gHUskTAHbh5VSShlbY70oEpmQ+0zDjh5LynRtJxWYy0JOUXC/kBt+9QJaDNW NM7BctS4UC2w
+u5mdsuxJ+QBpaZdTSu6nEhJWIGV5GBP845du3ojna2RlrZoL4dd4MG72xRw DijpCKVpIeFN
kUJnyvxcHpj8tbbbQzGqk1CP1bRC6dS4OmLks5bcoxzJqLoSNxK034U1tPBu 5Vcoy0XoQRgP
cUbWCewOTONEJEkBSMoJq3gbI5ECSGtu8oyJ/TEJ69Eg4DKxRwTCk81QHoa0 ZDhprAgXMjZy
1TmTyjEOjlNLxPldSrGMFtZpaap4giTunCDROybmkI5uJRnXdIHllJO7l0Ij V2mzhK2gPVKm
0JZKy1T4+jZFTmd0JUIVICLsbpuEbdgu4MmvEVg2fUlasXIhQjV0dwZyok9O qbFoHvzZwL24
7yPULYOE2ziZ9F4S7HaHhE7sor2hbLUQC9x/bsZ19SHQUuapNiYC6L9X/Kgn DaUGqF7WfhBL
qXyqqu+ZKnO/7JPwGHo4khPRKYhk7bSFVBxKDz6BAy48LlAztUAmrVI74OFe Gkk4iF6qWjXV
nKTOmmbi5unSNmHjHp+5Hcm0ufKNIZJIKANyolkfyAzREdd2PKYMc7xciAks Lu57WzNqIq7o
btD5sXKPEsvoKfWo4o+Z4WAFfoq9X04ktGNK3N+v6X4P+jDA3SzIoVQlHEaA TrG0Zmrkz+Tq
EJJ0IsnDw5QagfqpOu6kKQumkVWoHhzCAFvQJaSQFqg0y36PMqQdVbbp2lBB zuL30+4+aFXP
xVEcd+GYwIoZ1YeEEZyg056K7Kiip5TmOEXi7Mz3aT485vn2IbWZJyXsxKNz 8TQ+5cIn6Si5
TyUSPo0FVBBxNTUsp2ODtLtTxq3tWYFVeZ/2JlOZ4WFNTyvxXcN09LO8Xawe PIMKvsh8joNI
Pc+tpQcVvY1radUMA0itoT9/cpROZMGsH9b9JQmnWLd/2sKyTh5O/Fd48QkW +5qEL3M9OpTt
Cr0WByL799dOPpk5lN+UsAoBHn1bwkZz9B0JTXiEFZ2R8HW8QKe2rqS0xFHa gWI/ecrOdI0M
K2whyhYWBaa4CtR2u/ADgQXFe4hN/EhCrbk7z0toNEc/kdCFvWz2pxK+h++T IW7RfF2988Jr
R2+2Qili+45AhNtmCS5K+Dl+wV8iqejEl/0evISrErLI8ZcjGZlP/juuWHav YiXXJFzCZUYa
l/A6X7bcpG63rh0f4c+qCzfI5cmtob9f0T24jgE3fkWG/AE1vtHPE7/hZvNb upLNsMewokY3
3qR7dZ2/4CZuanuLtd0W8AVaphXmdSoxUN4yCQpDxXQLqdlHtYweU7apfEEv L75Yr2Y5LKNY
lNCvEw5U8Y2f/ity8K2d3lXw0JuaCI1nQaL5UmO+jJ7zsYC+fIT+qqU3/zjF ZXgvGksX0tND
b9CF1oEalBuzrHiRLbaDZljQG8xhcfASvFdRGfRKV+HL6/CSBBClZwNBPEpy XYYuyZTEA3jQ
0LoUfkvranrzN8clLBuz9cw25h4vkHVYsoL3iCUbtmSdwSuoLBZOFgg7bWGq dEs4RTEpofcK
Fu4IhtibLEKnsSg4jnBP0FFSx19yWJvFR/MeLiJlwAl6jlLEniRVT1G8njaM +U2FljEebTDS
4aQvD9OI47dxSnpfMf3zU9I3TknvM+h9d9I7mN43Nf2L9DxD9GdJ1XeJ/tw0 9Jts+s0WPfUi
C2CLXQ1XsMV5joppjABab2JH3hWzoi7R+/IUVSD44LC0tVN+2bonGHLWZdHe UVes5XUieKOA
02NzerAbHzc0e7CHao+5qHlZmv9lBepkiPC6X8Z8i/dA6BZ6gqFXsf80HhzH oZ5x9PV44zn0
07rBLJ7IQsth+IboYLlbmBMkriMdJDU/FHR6d9RdQ8YJijxNj3bU3UI1zTxF PRRLzESUWYlw
hkLFWViPefR8i8a3acu+TXvl91Qf71BM36V/Vd6juLyPbvwBB/BHui79CUfw Zzol/1Lg/Unb
+5OW9w9jre39SXvPPmRlyT2OZ3py+MyNojL7a0Fe3HZe6Ay15E9RXnhHr6t6 xbAWtPoC/5ZN
BKaeAtMZDFHqaTQ6FgxV1efw2XwCzaL7G43/Dh/+QR3snwhRYsoNhYZ62511 +Dy+YOCswxfR
YhhaZzjGPe+UDZaywKotsCV3gIkCkOfyIKVG7P5N4/8QyH8LAKptgGoboNoG qLYB6Ci3AFRy
yuiXXE8mA63LQyzk6HChhK7heScIJoevFqGI2agQbqwSHgNlkdWAJ1DqDbPc JOjgL06IL58Q
WCZ9RnlwT8jiG7wbv8WP02NBX9UDObxYlBBRhipRjmViMVaKSoSEb5qEcBTM hJylbmEm5ByN
OB50NbDAztDfHN0mC2x9EViNEau6m3gpix9etAYvG4MdWfz4YtBXl8Mr+T2y ko40iBpiXIka
sQorRC3qRZBuAHVYL+rRIMLYLNYU7Ikmm7nJZm7CBfzM2AN0FbFDOMugarBI 1xSRchaDfL4Z
oF7JwBQmYw5jxYgbCHEjqkUjYW5GUDRRKLdgjWjGWtFCqK0FuW2wERssRMHX GwvshgU2aoGl
i8BauOyI602j6VbegstxHpUl51F+yZzJ4sppuGjC4bjglcxlPnNZBc0u9Eo8 UbiK6+MWnI4L
JRfYuVcvFNVIOznXiVaxG4fFHmREV4Ezo7Yzo7Yzh+3T7QXKCa9qJROvnYab Lg1vjI3jeg8P
crjZHvL+Motf7wuZ4DTw3pr422cMFtRm8bt9oSzezlfucr7OiAOQRC9tnUNY KmT6d7IPYRHD
BhHHI0IpIGy1CCtQRx32HYPwXUPXe/8HUEsHCNqLXobCCQAATxYAAFBLAwQU AAgACABJBlc1
AAAAAAAAAAAAAAAASwAAAGNvbS5wYXJlaXMudHJhZGluZy9iaW4vY29tL3Bh cmVpcy90cmFk
aW5nL3lhaG9vL1lhaG9vUGFja2FnZSRMaXRlcmFscy5jbGFzc41U61LTQBT+ Em5NWeSuAspN
bkUhIooXEIQQpJo22EBn+JVJ2wWDbcKkwRlexPfQzPjDHz6AD+W4u2lFuRQ6 03PZfOc75+w5
s79+//gJYAE7bZAlzBf9inrsBNStqmHglFzvUD11Pvq+us/ljlP85BzSCcMN aeCUq21oltB1
5Hx21LLDoGbhiBZDCS3769umKWHY8INDlRbL7nGVqrRywGw/oKqulZ1qdVnC qADadjq7mdZ0
y9bMzI6Z1bO7lm2ZezlNlzB+FUeOHtCAekXKeHrP8Vi6vimho3aqGWlGKWEk 9hskm74GYdt5
Pbtp5iT0/I+ME45ePLRjae1nNkzDatDOehgGbuEk5O0MXsZTz5xYYcGeG65K aJpJ5SU0a36J
KujHnTbcljB5oxkS3MWABIWms9buelY0b9wocjnJUg0R3MN9VswhDcVH1vxM qvG4FbARELSg
lTOMEYzjAQurM9hpr+QWaVXzK8e+R72wavknQZFKmLia+WwJOPskQRsSnH2a YIaz951ntygt
cegsgRJDHxHMcWjnX6hWdll6jlIJkjFqgeAJb3ikjrqiWh71lKA9bnKJ4Dnn nromys5Tr+QH
PPglAYlTLhOs8JS954LrLawSdMRp3hCsY+NicRxpc2GdVgp+udrwKs8WkJNv EtxCJyffInjL
exi8jPys7jRBFxLsGg3Xo9mTSoEGu06hzMbXY/hFp5x3Apf7tcNk3PiWy53u f/drnr8nEkja
82ggNoeywhP1N6dVYsma2JulYIDvErMG+NSFVmo6WdPtte+k5nfUfNaa0F3i nLGjGz1M9zLv
C9P8l/uGvu8YjDAsjNEIE8KYipASxsMI88J4HGFRGM8ivBDGqwivhbEWQROG HmH7K2OV8Y7J
WVYh5G4o8gB65DEMySlMyIuYk5exJOtYkzPYlvfwQU7gvYjif0PIDLJMJ8Hv oR9mq/IHUEsH
CK5edTTMAgAAxAUAAFBLAwQUAAgACABJBlc1AAAAAAAAAAAAAAAAQgAAAGNv bS5wYXJlaXMu
dHJhZGluZy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL3lhaG9vL1lhaG9vUGFj a2FnZS5jbGFz
c51XC3xTZxX/nzZt0vbyCm8c0PJss9EA29wEhnRpKBdKyppSaHWtIb0tF9Kk JCms4JyKz72c
Tp2o863DN5RRVlAG7r05HT730DGd7uHGHJvbZNPpOffepLdp0laT3733O+c7 73O+833fg28f
PQ5gCRU7kUeYH451ertCcU1PeJPxUJse7fD2hLbGYt4meW8IhbeHOjQnHISF sXiHVwtH9K6E
5tU623kci2tevbMr4vVbhCoDhAItULXeT3DXbgvtDHkjIRYaTMZZ9nLCGF8s mkiGosnGUKRb
c6GI6Q2NBKcWCLZurFddUAgLtiaTXcu8Xm8uCysN/YRi4dpQ71+tbnZhHGEa M1SaDJUWQ6Wl
oEhTA8GGqoCPjVtYOyrX2eKCpqo1dXUEUvM5cmAxBqK1Va0mlKbGgWrV5w+2 +urWb6gL+AMN
wdZg3cZ6n194iDAxgy7o91fLFOdgjDXlq1WZT5D5afrV/qqGjfV+FrvRnOJE zDancmokzB2B
wjR94YhUjf5AdV09YdFIlIPM5MQPphdfCVOGIgeFcPCE8Q42rb+8rjZImJGN JGVdNv4Mg0qM
xPp9kVAiQZhVm72UzXnO+ByDXI226WEt4Yt1dsWiWjSZCMa642EtJWWKnSio aW2pCZeeUKN6
UmvjkmnmatETvrgWMuAx5pQeiui7BXatYCMYsZKQX17RSHD4Ym1aMdfYhQou wsWMkGlCRXnF
KOu1iJkvUTAeE2T0LgXn4wLCuFo9qgW6O7do8YbQlogmizMWDkUaQ3FdYAtZ uMKwpggrscqJ
d4/YH1aHwslYvEfUVY28pCzq5cXIh0/BCnDyLy4f2iRypSfFX9Eorq1WsBDl MlqjoMIcrVXg
MUe1ChbhAhkFFFRKCBzJrXqiCFcg6ER9znaW6mTz6rUOPZEU3xqwkTM10Dkq ctmXybq8hLVt
UrAZTVyCHVoyRUG4KIvbI8ldLnXxHonb4iJciVYnWrhUc/DI2+KT7LyPMC+X eBspW3wltigI
g4uzULMKurQ8p2nminGhnalyN2yzVTuxlVCWpUQazK9lQxE6sE1s3s6NLFtF DSY3otKpIIrF
hMlhY6VZU7zTJGXdFrPETiHboSAuZNP19CLMQrpDSLsV7BTSwva4pu3mjI1L btXsC40wgTGD
beEy4Sw3mZtNaWrYmqORcEpyB7Zea9fiWjQsKbka1zjxAcJ5wyVBwQfxIe5K UmZcUN3hZHc8
FFnN4eiOa5zE+Vl0cXA7Y1Fvd1LnLbyWa5aV7cVHnfgIJ2pEYgUfw8e5cbFG jny5WmEr6bot
27RwcrkTn+RAjOQiYVJmrKSfcszTaF9E58Dx3pfC5IzpghEoWhu1aFsszjts BqGpMlOBYFvl
Fezp3BKLJIZNWlWSV/KW7qTGjn8mt+NpMt7YsqlLWZh232p8o9kGBnos4RYF X8A+09NU81SN
w5cEak5uP+xCvqTgy7iVoJhLK7XJlUm+h20KwvxVBV/D1wnjLWZbyueUD8+u VjSKhG8q+JZd
Qjp2MvkdBbdhPx8cE1oyEOrUpAyz9FVD0PcUfF9oS4Q2sSGutetXCf6HCn4k eJeB59OnrLcD
Cg7KahprrKbuLt41e7o0ozscUnA7rNpU27iu9HZjB5WV06fgCO7gJRFqa8uw xVoQFc1OHOUT
yPBJdOEncuyUoZh4XMGdOMEnXWlbqQS0jRA/m+4hCCswzc3No8jhzxTsxh4Z 3a3gerTJ6F4F
N2CPC/cTpurZ15mQPajgIfycw2gYbkv+QzmNH+h7w1rGQdfiOUlsQoYeLoZg VHVIrJpTv1H0
Z3H0FwquNWP0iIIbzRj9SsHNEqPfcM3pA6tbpn6n4Doh78CjCh6TairiajJ7 nGCfUPAH7OEd
Jo21ekLChSd5TzJxTjzF56fhKylHE3Thz7ydDEchZv5FQQ/aXHiGVe409Lvw HDdrru6GWFUk
EkzGwtstfqH/m4IX8CKfcpnAX8eLJpTUY1HCrpFKdRSZHv1pKa2Ym/BL3DJH FSDJjAsvc5/J
xIpjryj4FG6Sw+Q/FLwmhylFs52a5ND0hoJ/4hyvUWv/ZTV8fMndYqtDyZD0 FD47vWU0pfQO
48K/+RLbEqjeXNpSvVaVV1VpS2BtaUtNcINPzPkPX4+JUsvKtpvszxnogZ3p /wr2/7RoRrE9
uoivuI6EseMWmwW3WpcLyAT7EatSNHCs1WhUixs6tISTXITKUV2F5tXyJYzP QHIlSw1RxvGT
e/R0/hegkCGn3MLhYrjYBpcwPMYGj2WY71QGpxsT0/hJDE/OgKfY4KkMT7PB oneGDX4Hw+fZ
4JkMz8rgn50hvzRjvixD/pwMeG4G/7wM/vkZ9AsG2Zcn1yxjXGF9Pca3WG6W BrzI+lYa33Ec
Sy8Ws4QlDF3IX/mV3IGlh/DO/EO49KBBvIzfY41UrOIwn2NxZVhuzMizIi1A YxoRMdfjLunF
ZUdwuYcOwy+vGnmpnvzDWCev9QOCZxnWn0URTrGSR9mf05hGBzCTHuHovGIo UkyxqDOyWiTX
bUvlaZYiZuztxaX7MKEXG9wl/WjMwwnQgQHoJGgfxg/At6H4GKjpCJqZbp2D Pe3Fe/vBFbxJ
iDSLqcNi0iymwl7oJ9BR6+lD5Pw+xPjbxd8Ef5OeA2mXKrkkQW5MoslYQVOx imZApZnopFLs
oDJ00zz00HxcTeV8cvEYLk4xIlmDXYaLnQxfhe3sJElft5z1GjBQ4Lkd/gF1 UvmgS2yRKrAi
RXIcsJgvY2qZmyjM/Xg/r61+fFgC9YlMUdU2URPToq4dRpQjl6grsoq6bhhR BblEtWQVdX3W
6NRkMm/LGp0bstpRM3x0dmW148asdqiZzHuz2sE7VhY71EF2fDpT1E1Z7bg5 q0vq8Fm6Nauo
z+JzlqillksuLvTPn8DKTP79Nn5Xmj+abgyHrcbQyqas2wfHQY9DGoEnvw9f lAYhyXf04SvG
oCA1KDQGDoOmRjA1Jk2BgVEFozLmG8ZAuAaaylI2BnQULjqGMXQcU+hOzKYT KKeTWEJ3YRnd
DR/di1q6DxvpfrTQAzYXWtMuxFMu0Fu8leRJ9lnZ+pQL6z1uVx++7XGP7cN3 uen14QcD7cJo
FEZV/5jAXaK3H4fzsMkssEyUmokSTne/+1h+Prv4U4b7cJKfu/i5x30f5Tvc /Tzl4EcIHjAI
Hubnl/yccv86O8FvWcHv+Xnc/UeDgKfybQRsmfu0+082lffw87Sodv9VGE4P ZSD3s3143hir
7jPuv9uYzzLu1X68TnC/6f4Xs58RVpP7bYPilCX+YVP8mSHiVZpIeSJ/ILWN vIeDHufUPsGp
fRIT6TSm01Oc3qexiJ7hZvssgvQc2ukF7KQXcQud4XveS3iMXsbzdJaK6VWa Qq/RAnqd1tAb
pNM52klvppuwLHAz/YtordWE88gh+qmACo3dlMjJT1Fh0X8BUEsHCAj8j00N CgAAoxkAAFBL
AwQUAAgACABJBlc1AAAAAAAAAAAAAAAAUAAAAGNvbS5wYXJlaXMudHJhZGlu Zy9iaW4vY29t
L3BhcmVpcy90cmFkaW5nL3lhaG9vL3V0aWwvWWFob29BZGFwdGVyRmFjdG9y eSQxLmNsYXNz
nVRrTxNBFD0DldK62oqI4AvQqi0oS+VpIBrTQIJWSUSJfpzuTumQ7U6zu9Xw rzTxkfjBH+CP
Mt6ZNk1TupaSprt379xz7jlzd+fP31+/ARTxNIkRhhVH1e0GD4QM7SjgrvSP 7BNeU8puRtKz
P+rwhcsbkQh2uROp4CRXTCLBUDgD8OCzjJwaw1hUk2FumbqVh263RfBt6cvo GcN6/hz4wiFD
oqRckQLDRQsXMJbGKC5ZSOIyw2heF2TK0hdvmvWKCN7xiicYJsrK4d4hD6R+ bicT2gjD2vAy
ckUyknJ4KMwiw+p/vJiSrUL5mH/itscpv185Fk60lcYUppO4zlAcWoGFGdwg X04geCS6C2iY
+UJZBUe2cDzZCIUt6lWbGtSVb/sqktUTu12qp6GMFoa5QQaopGN4z3elI8KS qjeUL/woPFDN
wKEtfTVoH2KQcdszZ2Fe+yx0+Yyh6NjfOKcEhslegwdCuAzPz2hKV8cZeWDh oTZy+7QRDeuI
XxyiFUNWC95zyYSsytZLvdZXbHdNnMRHFh5riTMtid2Qjrz5geT0Vbqiypte VCJtdEjkT72L
wlGBsHfarWPUPLGwotVMttS0qztCZgewMqRbY92Velem+3xCS7ovg7Xn+yIo eTwMBZ0GmR3f
8VRIvl6LqKZcLNNBM0pnLMtm9WlDkf4nMU75FEWbGKEfkF5Y/E6Xn7C+0tMI MjpnVhjhXiJL
kUWxzl7BhMlfxWSbZZvuunZ84RvSP3DtS4djzGDKBj/VqmnjdXQTt2id3ivc 6c8028u0H8t0
1zDdQ64/0/1eprexTHnDVMBCf6bFXqb3sUxLhsk2U+jDVOxl+hDLtGrmuGbq 17Fh5sAMBlS1
SdcE4fAPUEsHCHteHWaOAgAAUgcAAFBLAwQUAAgACABJBlc1AAAAAAAAAAAA AAAATgAAAGNv
bS5wYXJlaXMudHJhZGluZy9iaW4vY29tL3BhcmVpcy90cmFkaW5nL3lhaG9v L3V0aWwvWWFo
b29BZGFwdGVyRmFjdG9yeS5jbGFzc51VS08TURg9ty0dWgaKvOTpo4L0AYyI 4KOIYC1JTVM1
JSToapheymA700wHTbf+ArduXLowLhRfQROjKxN/lPGbmVIoLWY0TeY+vnvO +e6Z75v++v3l
G4BZpAR4GGYVvSSVZYOrFck05LyqFaSqvK3r0q6pFqUNa7qSl8smN1ZlxdSN qgAfw7xuFCSu
FNVyhUu8tCURTUnXJE031a2qpJbKRakRlqYtBrGk53nxvqw8lgucYTJzoryt XDuYYOiwgbmn
qqlsM8RPxh2m7RwmrH9R1VRzicEbia4z+JJEFYQXnSICCAoIMcz9sw3js0F0 4ZRF0cOwEHGT
USNDIroeAEOfCAHt1mxARBv8AQxiWMAQw4Qrc0SMwM8Q4Olsbm0lm0wxhDKq xrO7pU1urMmb
RTK6J6MrcnFdNlRrXdv0mdtqhe7+H6kzdKuV2mJVN9aqZeLrj2R25CeyVJSJ 4N7mDlfMRPSh
gAsMY8frhSu6waWUc6oDYUyIuIhJelk8WZQrlNa5SDRzAso+kehAFHEBMYbR v50TMYVpKqAC
N1P1wgufTH5Yc37dzs5yr+leDJ2KwWWT14xheBBpYmxsiqw1qNxINEs3HqxR JoKYw7yAKwxR
1+UuYgFXGdrz+kGvzDXn1WA+pdN0OwHXqfxcZUk2mbJB5jK4NoAcdcw7Wlp0 yxYvpbUzliOH
BGktryq8ktRLZV3jmlnJ6buGcvhmxprP5jjP1+NDTjydJywlaDVHPdbnxGpe 1beDjsSqavXR
YIsOmbE8pe9dWtO4Ydchr+A8NbmXPr4e2J1OM5/V+zS2U4S+RfTsoNUj2mc0 jsU+Q4x9RdcG
Tbo/oncP/T8R2MPp9+h/ZxON0nPYpooTKE20d9FNFT+AaYpJGKOI6JDhDM7S SJ1lJ2IJacTg
oTEWJ+ZXaPO9if9A+AVG4t8R3sc4wz4iDAdBL/3qqgOkBdygCyQo9ZukuoQI lm3FAYe1pmjN
ZigXRr9L9M/jaCdr2qHYB/Raep9w+Tuuva0L+O20+RHCUJ0wRMIJm3CRpB3C KXtNaHacwzxi
g6duw5IL5LOWyFsukM9bIpddIF+2RK64QL5ugfTgtv1M4g6NVoV12Q72/AFQ SwcIKdPP2kAD
AAAJCAAAUEsDBBQACAAIAEkGVzUAAAAAAAAAAAAAAABGAAAAY29tLnBhcmVp cy50cmFkaW5n
L2Jpbi9jb20vcGFyZWlzL3RyYWRpbmcveWFob28vdXRpbC9ZYWhvb1N3aXRj aC5jbGFzc51V
31NbRRT+NgmkCddCsT+oUCBWbAjQlJa22rRAm4Y2Ng1gEG1rrZdkSS4muTEJ OHnVd0d9YXzT
F53xCesMDj5o3zrjH+X47SbEQPOjFiZ79+49+53vfOfs2b//+eNPANPYcMMh MJ60c8GCWZRW
KVgumikrnw5WzIxtBzfLVjb4QE0TX1jlZMYNl0DfhrllBrMmrRbXNmSyLGDk 7JTMLpnJz8y0
FDgXa4mowWqGIYHu61beKs8KOP3jqwKuMHG8cKLHgBtHPBB4zUAXuj3oxTE3 +gTGXgraQD+6
BTwyGk+s3IyHIwK9MSsv45u5NVlcMdeypNkfs5NmdtUsWuq9tugqZ6ySwETr EA6LwjCOpGpz
gUv+mF1MB2UyaxVKMihz65zbRRmMVMUKjccO6xfqwRsYcmNQ4EzbvQbOYJii yXDWLJHkqH+8
lTNtEfJSwFEDp+ATWG5JrGr7/2kLeMsZGdkvgpEOCD0Ywzk33hYYakfEgB/j hJZhO182mbOi
gK91oA3gEwYmMcVMp2VZQ1nrlixGb+vqiiotgkqLCwIz/uirZGkMFw1cwozA UbqIJDYLrKVK
QTIVY00YsoJydr5aL5GYVVIQV/COG1cJoOH1J/XFwLu4JuC2SpFcoVzRjB8q xtcN3MCAQE9K
rpub2XLYLEmFMmdgHjdpRyICJ/zRpvnxqPzUimW4ffrpQjYG1Bc7yDDkxh2C tD99inHUwHu4
R99JUtWrSu8OHaGZ3grsvoE4FslGgUVTMl9mTqsH9XJTzEabZqBuLHNrezLR fMpKylLYzhXs
POFKCXuzmJSKT8LACj7goaoH18JY4F6nmFvsbM76w3ZtuhEuIWVKMX1g4CEe CRw/zFQZCMy9
JDtl3fzsG8kDR0xEBboq1XSPdso2e1hRlljOqgk3wR6qtJX26isqyzqqvKBE m07/ghDkbde6
na9j9bGHVf0uWKpe+xqujPMqZviYJifvYWqp7jjO1IXHe4+jh293+BR8Hgv8 Du9TGM/heYqj
v8H4lYsOvM6xHy6OFzhOw4uL6MMMjnPFqG7ECZzUDk5hoAY6T5cOZRGY2MNp hr+LkZ06Xrfe
N6sxTlbtahhq9ibO8rtL3Sc1tB+IphjME+wtAZL8Cb0KOSAwuYvzO5xOC8Sn 9nBZ4Hv0BLga
+hn9gSnnHmYdeIaxyQMMhikAEIXqIgO4jxEs8kJYYozLmGMzUMwCVZ91ZvO4 hbBmPq85OrjL
h9uIaHbs+FW2Yplfumi1PfiL3vcNqn8qzkH+bvFnTT7DQjwwtYu711ynXc/h VfPY/lzRV/Md
mi1ps/c7ma1qs4/amunZfyIsMHXAYwzhCQP5lAKYTOwaw0sy0HXcRZqyZPAI Fmcb/M/BRh5b
HL9EAV/jc3yLkhbrY52o7bpY21x5rMXaronl4/MTenLSzyC9mRTtLtfW6M1J P/trNtdSkFzb
qq8J1exrxXCFTyWlQxwuqK8aCspRZ+JgJE90jbOndsT4riVGUmOw23XE+LEl htQYvGs6Yuy0
xEhrjBv1o9Ya46+WGGc1Rka/Wf8CUEsHCL6VuTKFBAAAqAsAAFBLAwQUAAgA CABJBlc1AAAA
AAAAAAAAAAAAJwAAAGNvbS5wYXJlaXMudHJhZGluZy9iaW4vbG9nNGoucHJv cGVydGllc42U
TW/bMAyG7wHyHwgEvi0aOnTHHNJkn8i2FulOww6yzdhKFdKR5KT+96Pszljn NsnJMMj3If2S
9ATWGMAxB7BcFOjA4gEtBIblh5ufn0BTDiZ4YLIN6KpCyiVJwvMrNR6J5nqr onyhAxbsmtmX
7x9/vJHoeDQeTeQJxoOXGiJJETQsmDxbnD+heshftppfzdgV8q6zElUX/E/U s2uPHm51COho
pRuuw0s8ZdvQEPtM+bowlj+g84bpSTFLptcOfiXhNyTT9xUkGSSPMIVkl1Db XIfqLFWxbmlS
0YlJM0MbPp2RY1oXLWYyiWOBz3cr2NfoGqi08+K/zoI5mNCc5Khyb5X2Qc3X 90PmtvYylBJh
fbc6jZGEofzr8mYBqZHtkJb0DsUVDxI8jQpNdYEBXdqgpJfB7TTgY8UuvK2r XFIvKMlsVZnu
3uW5fdnZ1lMIDtGf9XNIyOI+9QM530+bP8QEp8lHCtOF0/1H8cp4HHquXRa7 29fGm5h6mrnN
0+w5DEmnFttF2bC1fDRUgDWEYDYgxwFHTe1xSzvZA+R8JMiYCLtP6eyITaF+ 0IVc67FEkruN
mKUzclbfNEnALXrRreODiX+Z8172GnWGNYvt4Xj0B1BLBwjJYc9U0QEAAPAE AABQSwMEFAAI
AAgASQZXNQAAAAAAAAAAAAAAACMAAABjb20ucGFyZWlzLnRyYWRpbmcvYnVp bGQucHJvcGVy
dGllc3WOwQrCMBBE7wv7D4H2qMkPVMGDQg968uhFk6VG0m7YJKB/b+qtUOc2 82B4jeosx4/4
4Zn3CI3qzKLPU9u7FgHh4SftJxuKo6R2Sm9uCGqZkR0FswLOx+th219OayyG MtTr9xj+wygc
SbKnhPC6S9KWx+gDaRZHMtsgJC5iSevakliDwCXHkn9DdTdfUEsHCHjgQg2M AAAA7AAAAFBL
AwQUAAgACABJBlc1AAAAAAAAAAAAAAAALwAAAGNvbS5wYXJlaXMudHJhZGlu Zy9tb2RlbC9j
b20ucGFyZWlzLnRyYWRpbmcuY2F07Vpbbxu3En7eAP4PhJCHCsfHIPe+RlFY lqzCQJITWE2B
AgUEekVLbFe76l6SqL++vOxyl9qL5dhxc1obebCHwyVnON83w2FOXn2X3P5G why8JzmOTl4B
9vORpBlNYv6rYXtStvyU0jwnXGiMbpKMAP8MnkELWmfIhnAktcINThckFzPh +OTVifr8NMJZ
tpzinKyTdA9GeYpXNF6X82i2LGIq5/108+FKSaMEr8hKk/5R0BWQP8bIdiyI /Ms5RFOn/Bb5
vEvSfJrEeZpETOV9cRvRsByMkjUNcbTcJisSZcD4LqJZDvjay5TckZTEIVly 2ckrQ9s6GE0j
SuKcfcdo78KaT8xL6ELTmVUKqyQstmwCzrkrjdEEvMXxCsc5SFKAgf61rNiR NOTrELUpGm8I
8znmO0pJJL6Tbeiu2p7a33VD8aahyHWGtno1qjTY8ju2n1RovJEuAj9T8un8 PEy25+c7nBKa
nZ+Xh3Z+fr1im6d3FN9GZNRcp2iv4wWj8bi0M2Fmyv1VVv5PSZomKSkYhSlh QTMjd7iI8kWe
FmFepPqizWiYBP5kDq0gUBopydjMUuMXvEkSNRQmcVik/ND3bGxB/ii4WThS Csnuqi+apEK9
Ogv4exxx5YzGg0aKzSkTJ/FqQciq19JLjwU9A+Dsa5kzFsd2gILDk+eqOM9T elvkdexOKsmS
scF4GDJeoFCQMwAm+X5HmMJ1zP66w6FaRcBj2V7rQN6Ch9i42hAY0T6X1ju6 VBpiM5UGOxpJ
WXKsh2g63bbYM+O23eThWObEYySKArePPNZRcssgmbHlI5In8SmL6h0LbH4W 8RrkGwIysQIn
F/4X5oAOxfS/gWOERVdzCP3pM3JM0+2TLEtCWqLr9Yd37yZvr2av4cABmD6E wbRSYCfKvCQV
pKu4pOWWGyZk6BVcnvUiVX6d/VMaEb4lUaVxOP3BnqpzyZCPnJooeMxiGvMI YyqXe/Azjora
ySzvxvgjXXPPy8w7bhutnIrutdv8ctNq3HSYdgCcnr03RvB6nZI1Y9rSqjZS GxXKvkoV5eSD
AqUSqwplPnmzqOR3lAVLjLeE7/P19MPN7Prm11+ZiWfSwrPSwDOxyBkDal9k QjgPHMjSmkii
InbKEqbEv55Oj6hkZhSvU7wFo7csBHqWNeeX0LOh5U0qhZzmEakUmjP/TJJt NRNBWEq3+PNy
Q+h6wwLM9C2nKf9EV/mGaZvIVfpJStc0Xn4GZR5tyPbiy7blVz5nAaFDcyUt WvKRNv2XB8qj
DBwVc/LgwQVSaE0kk4oVPd8/BaYbjKvROwamygHVonMm4+NGRv9U+cMXEp7S lKffFCFdYfBj
ykpDiT/jNonUSVQhZRiMehmfZwfSgs1KIxoTTZqxNPU7OfxCmERJWn5XVCrG StZUSzlS4/yQ
oFQOYO59w+Vi9nvmtjhfCrca0leG5ijXtk8B8p2xNJtGUbUScj2Pjco5Md+/ PE/DFBItRnzp
td+KjOWCfWP3GoXKI1O7p6wSWmb5nlPASGy5Zl62mtoHtH3Hc1Xd1rfHLuap cVlplFsWGhZU
Hy1RIPHhQ41JBR5lYIpfR8cFqJYZwYVZLbXYJJ+myZbp55zaF6qcynQmvI7D qFiRuibqGq2r
U22Ur6GGFnQdY16r6jpaGLAIcBlgkPcCmCZgzDZgkIcshhj3IYhBHYhxj0GM FkPKimYF/jgr
THSPFayU3JT+ZUB8OsO+/17dHH74QacEFUXa3eJ5GOPgulPe1xRWa3c3APwQ h5smLB0+hC5x
xi2ECUvuQRkf6EaacF8n2vif3YiTsdaFOumXQ+TxX/vQZ/ScXSv
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594670 is a reply to message #58698] Tue, 24 October 2006 06:42 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
This was/is a complex case. For me it works fine in case of a joined-subclass inheritance strategy
but fails with single-table.

After some debugging in Hibernate I can see that the following happens:
When hibernate loads the vendors association it will also load the one-to-one mappings from Yahoo to
YahooIndicesComponentsSource and YahooIndicesSeed. The onetoone mappings from Yahoo to the other
objects use primary key association (see the hibernate manual for one-to-one) as a default. This
means that when the vendors relation is read also its one-to-one's are read. Because they are all
stored in one table and according to the mapping have the same id column Hibernate thinks that the
one Yahoo record is a YahooIndicesComponentsSource and reads it from the db. Then when the Yahoo
object is read it gets the already read YahooIndicesComponentsSource from the cache (as the id is
the same and the table is the same) and then throws an error because it expects a Yahoo.

At the moment I am not sure where the solution for this can be done. One thing I can think of is
that Teneo should use foreign-key one-to-one instead of the now default primary key.
Can you enter a bugzilla for this issue? Then I will look at it.

As a workaround, does joined-subclass work in your case?

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> finally I have reduced the problem to a small test case. You should be
> able to reconstruct the problem by executing the
> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
> included hsqldb which creates its DB files under C:/Temp/options. The
> model project has a dependency on an "org.hibernate" plugin containing
> the hibernate libs but I'm sure you have something similar to replace
> that with. The model is in the model/options.ecore file but everything
> is generated. I'm on EMF 2.2.1 stable.
>
> One more hint: As you can see in the model there are associations
> between classes of different packages. This might also be a source of
> the error.
>
> I really hope we can get this fixed otherwise I would have to use
> non-appropriate one-to-many associations...
>
> Regards
> Andre
>
>
>
> Martin Taal wrote:
>> Hi,
>> Strange. Which ereference is set?
>> How does the database look like (tables and records in the table)? Do
>> you see anything wrong there?
>>
>> Can you send me the ecore and a testcase to reproduce this?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Here is the stack trace when I run into the code:
>>>
>>> 2034641 [main] ERROR
>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>> saving resource trading
>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>
>>> at
>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>
>>> at
>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>
>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>> at
>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>> at
>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>
>>> at
>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>
>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>
>>> at
>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>
>>> at
>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>
>>> at
>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>> at
>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>> at
>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>
>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>> at
>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>
>>> at
>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>
>>> at
>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>
>>> at
>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>> at
>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>
>>> at
>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>> at
>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>
>>> at
>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>> at
>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>
>>> at
>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>> at
>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>> at
>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>
>>> at
>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>
>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>> at
>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>
>>> at
>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>> at
>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>
>>> at
>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>
>>> Andre Pareis wrote:
>>>> Hi,
>>>>
>>>> I'm having a problem reading back a previously successful stored
>>>> one-to-one association. During load, a ClassCastException is thrown.
>>>> I have attached two files, one with the model and the other one with
>>>> a snapshot of the debugger showing the line which when executed
>>>> produces a ClassCastException somewhere in the model code. That is,
>>>> because the eInverseAdd is invoked with the wrong object.
>>>>
>>>> The debugger shows that target and value are the same object. The
>>>> eReference value is strange, because there is actually no
>>>> corresponding object for this association to be found in the DB.
>>>>
>>>> The only objects that are in the DB are the parent of the Yahoo
>>>> object and the Yahoo object itself. The load of the parent and the
>>>> Yahoo objects have been passed successfully. Normally, the load
>>>> should have stopped already as there are no more objects to read -
>>>> instead, it ends up as shown on the debugger screen.
>>>>
>>>> Any ideas?
>>>>
>>>> Thanks
>>>> Andre
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>
>>
>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #594776 is a reply to message #58881] Tue, 24 October 2006 23:11 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hey Martin,

thanks for your detailed analysis!

I think I always used the joined-subclass mapping.
In the DB, I find one table per class.

This is, for instance, how I initialize the teneo layer at the beginning of the ClientTest test case:

final Properties props = new Properties();
props.put(PersistenceOptions.INHERITANCE_MAPPING, "JOINED");
props.put(PersistenceOptions.SQL_CASE_STRATEGY, "none");
hbds.setPersistenceProperties(props);

This is only a quick response for today - I will have a deeper look at the things tomorrow...

Regards
Andre


Martin Taal wrote:
> Hi Andre,
> This was/is a complex case. For me it works fine in case of a
> joined-subclass inheritance strategy but fails with single-table.
>
> After some debugging in Hibernate I can see that the following happens:
> When hibernate loads the vendors association it will also load the
> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
> YahooIndicesSeed. The onetoone mappings from Yahoo to the other objects
> use primary key association (see the hibernate manual for one-to-one) as
> a default. This means that when the vendors relation is read also its
> one-to-one's are read. Because they are all stored in one table and
> according to the mapping have the same id column Hibernate thinks that
> the one Yahoo record is a YahooIndicesComponentsSource and reads it from
> the db. Then when the Yahoo object is read it gets the already read
> YahooIndicesComponentsSource from the cache (as the id is the same and
> the table is the same) and then throws an error because it expects a Yahoo.
>
> At the moment I am not sure where the solution for this can be done. One
> thing I can think of is that Teneo should use foreign-key one-to-one
> instead of the now default primary key.
> Can you enter a bugzilla for this issue? Then I will look at it.
>
> As a workaround, does joined-subclass work in your case?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> finally I have reduced the problem to a small test case. You should be
>> able to reconstruct the problem by executing the
>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>> included hsqldb which creates its DB files under C:/Temp/options. The
>> model project has a dependency on an "org.hibernate" plugin containing
>> the hibernate libs but I'm sure you have something similar to replace
>> that with. The model is in the model/options.ecore file but everything
>> is generated. I'm on EMF 2.2.1 stable.
>>
>> One more hint: As you can see in the model there are associations
>> between classes of different packages. This might also be a source of
>> the error.
>>
>> I really hope we can get this fixed otherwise I would have to use
>> non-appropriate one-to-many associations...
>>
>> Regards
>> Andre
>>
>>
>>
>> Martin Taal wrote:
>>> Hi,
>>> Strange. Which ereference is set?
>>> How does the database look like (tables and records in the table)? Do
>>> you see anything wrong there?
>>>
>>> Can you send me the ecore and a testcase to reproduce this?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Here is the stack trace when I run into the code:
>>>>
>>>> 2034641 [main] ERROR
>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>> saving resource trading
>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>
>>>> at
>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>
>>>> at
>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>
>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>> at
>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>
>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>> at
>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>> at
>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>
>>>> at
>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>
>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>> at
>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>
>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>> at
>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>> at
>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>
>>>> at
>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>
>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>
>>>> at
>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi,
>>>>>
>>>>> I'm having a problem reading back a previously successful stored
>>>>> one-to-one association. During load, a ClassCastException is
>>>>> thrown. I have attached two files, one with the model and the other
>>>>> one with a snapshot of the debugger showing the line which when
>>>>> executed produces a ClassCastException somewhere in the model code.
>>>>> That is, because the eInverseAdd is invoked with the wrong object.
>>>>>
>>>>> The debugger shows that target and value are the same object. The
>>>>> eReference value is strange, because there is actually no
>>>>> corresponding object for this association to be found in the DB.
>>>>>
>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>> should have stopped already as there are no more objects to read -
>>>>> instead, it ends up as shown on the debugger screen.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks
>>>>> Andre
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>
>>>
>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #595368 is a reply to message #58881] Fri, 10 November 2006 12:44 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

I'm still having my time with that one...

Do you have any idea what I could do as a temporary workaround?

Can I disable the hibernate cache? Can I add some kind of annotation to embed the owned object in the parent table? Should I use the SUPERCLASS mapping?

I really don't want to change my model to use one-to-many associations only as I would lose the explicitness with that.

Thanks
Andre


Martin Taal wrote:
> Hi Andre,
> This was/is a complex case. For me it works fine in case of a
> joined-subclass inheritance strategy but fails with single-table.
>
> After some debugging in Hibernate I can see that the following happens:
> When hibernate loads the vendors association it will also load the
> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
> YahooIndicesSeed. The onetoone mappings from Yahoo to the other objects
> use primary key association (see the hibernate manual for one-to-one) as
> a default. This means that when the vendors relation is read also its
> one-to-one's are read. Because they are all stored in one table and
> according to the mapping have the same id column Hibernate thinks that
> the one Yahoo record is a YahooIndicesComponentsSource and reads it from
> the db. Then when the Yahoo object is read it gets the already read
> YahooIndicesComponentsSource from the cache (as the id is the same and
> the table is the same) and then throws an error because it expects a Yahoo.
>
> At the moment I am not sure where the solution for this can be done. One
> thing I can think of is that Teneo should use foreign-key one-to-one
> instead of the now default primary key.
> Can you enter a bugzilla for this issue? Then I will look at it.
>
> As a workaround, does joined-subclass work in your case?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> finally I have reduced the problem to a small test case. You should be
>> able to reconstruct the problem by executing the
>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>> included hsqldb which creates its DB files under C:/Temp/options. The
>> model project has a dependency on an "org.hibernate" plugin containing
>> the hibernate libs but I'm sure you have something similar to replace
>> that with. The model is in the model/options.ecore file but everything
>> is generated. I'm on EMF 2.2.1 stable.
>>
>> One more hint: As you can see in the model there are associations
>> between classes of different packages. This might also be a source of
>> the error.
>>
>> I really hope we can get this fixed otherwise I would have to use
>> non-appropriate one-to-many associations...
>>
>> Regards
>> Andre
>>
>>
>>
>> Martin Taal wrote:
>>> Hi,
>>> Strange. Which ereference is set?
>>> How does the database look like (tables and records in the table)? Do
>>> you see anything wrong there?
>>>
>>> Can you send me the ecore and a testcase to reproduce this?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Here is the stack trace when I run into the code:
>>>>
>>>> 2034641 [main] ERROR
>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>> saving resource trading
>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>
>>>> at
>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>
>>>> at
>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>
>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>> at
>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>
>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>> at
>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>> at
>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>
>>>> at
>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>
>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>
>>>> at
>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>> at
>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>> at
>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>
>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>> at
>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>> at
>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>> at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>> at
>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>
>>>> at
>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>
>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>
>>>> at
>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi,
>>>>>
>>>>> I'm having a problem reading back a previously successful stored
>>>>> one-to-one association. During load, a ClassCastException is
>>>>> thrown. I have attached two files, one with the model and the other
>>>>> one with a snapshot of the debugger showing the line which when
>>>>> executed produces a ClassCastException somewhere in the model code.
>>>>> That is, because the eInverseAdd is invoked with the wrong object.
>>>>>
>>>>> The debugger shows that target and value are the same object. The
>>>>> eReference value is strange, because there is actually no
>>>>> corresponding object for this association to be found in the DB.
>>>>>
>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>> should have stopped already as there are no more objects to read -
>>>>> instead, it ends up as shown on the debugger screen.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks
>>>>> Andre
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>
>>>
>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #595377 is a reply to message #60509] Fri, 10 November 2006 13:20 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
I didn't have time to look at this issue. However today and tomorrow I will work on a number of
Teneo issues. I will also look further at this one.

Can you test if superclass (single-table) also fails?

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> I'm still having my time with that one...
>
> Do you have any idea what I could do as a temporary workaround?
>
> Can I disable the hibernate cache? Can I add some kind of annotation to
> embed the owned object in the parent table? Should I use the SUPERCLASS
> mapping?
>
> I really don't want to change my model to use one-to-many associations
> only as I would lose the explicitness with that.
>
> Thanks
> Andre
>
>
> Martin Taal wrote:
>> Hi Andre,
>> This was/is a complex case. For me it works fine in case of a
>> joined-subclass inheritance strategy but fails with single-table.
>>
>> After some debugging in Hibernate I can see that the following happens:
>> When hibernate loads the vendors association it will also load the
>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>> objects use primary key association (see the hibernate manual for
>> one-to-one) as a default. This means that when the vendors relation is
>> read also its one-to-one's are read. Because they are all stored in
>> one table and according to the mapping have the same id column
>> Hibernate thinks that the one Yahoo record is a
>> YahooIndicesComponentsSource and reads it from the db. Then when the
>> Yahoo object is read it gets the already read
>> YahooIndicesComponentsSource from the cache (as the id is the same and
>> the table is the same) and then throws an error because it expects a
>> Yahoo.
>>
>> At the moment I am not sure where the solution for this can be done.
>> One thing I can think of is that Teneo should use foreign-key
>> one-to-one instead of the now default primary key.
>> Can you enter a bugzilla for this issue? Then I will look at it.
>>
>> As a workaround, does joined-subclass work in your case?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Hi Martin,
>>>
>>> finally I have reduced the problem to a small test case. You should
>>> be able to reconstruct the problem by executing the
>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>> included hsqldb which creates its DB files under C:/Temp/options. The
>>> model project has a dependency on an "org.hibernate" plugin
>>> containing the hibernate libs but I'm sure you have something similar
>>> to replace that with. The model is in the model/options.ecore file
>>> but everything is generated. I'm on EMF 2.2.1 stable.
>>>
>>> One more hint: As you can see in the model there are associations
>>> between classes of different packages. This might also be a source of
>>> the error.
>>>
>>> I really hope we can get this fixed otherwise I would have to use
>>> non-appropriate one-to-many associations...
>>>
>>> Regards
>>> Andre
>>>
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi,
>>>> Strange. Which ereference is set?
>>>> How does the database look like (tables and records in the table)?
>>>> Do you see anything wrong there?
>>>>
>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>
>>>> gr. Martin
>>>>
>>>> Andre Pareis wrote:
>>>>> Here is the stack trace when I run into the code:
>>>>>
>>>>> 2034641 [main] ERROR
>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>> saving resource trading
>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>
>>>>> at
>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>
>>>>> at
>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>
>>>>> at
>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>
>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>> at
>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>
>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>> at
>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>> at
>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>
>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>> at
>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>> at
>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>> at
>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>
>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>> at
>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>
>>>>> at
>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm having a problem reading back a previously successful stored
>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>> thrown. I have attached two files, one with the model and the
>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>> when executed produces a ClassCastException somewhere in the model
>>>>>> code. That is, because the eInverseAdd is invoked with the wrong
>>>>>> object.
>>>>>>
>>>>>> The debugger shows that target and value are the same object. The
>>>>>> eReference value is strange, because there is actually no
>>>>>> corresponding object for this association to be found in the DB.
>>>>>>
>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>> object and the Yahoo object itself. The load of the parent and the
>>>>>> Yahoo objects have been passed successfully. Normally, the load
>>>>>> should have stopped already as there are no more objects to read -
>>>>>> instead, it ends up as shown on the debugger screen.
>>>>>>
>>>>>> Any ideas?
>>>>>>
>>>>>> Thanks
>>>>>> Andre
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [teneo] ClassCastException during read of one-to-one mapping [message #595388 is a reply to message #60528] Fri, 10 November 2006 13:39 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Yes I just did that. It also fails but with a slightly different error:

org.hibernate.WrongClassException: Object with id: 2 was not of the specified subclass: Yahoo (loaded object was of wrong class class
com.pareis.trading.yahoo.impl.YahooIndicesComponentsSourceIm pl)
at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.jav a:1234)
at org.hibernate.loader.Loader.getRow(Loader.java:1186)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java: 568)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1918)
at org.hibernate.loader.collection.CollectionLoader.initialize( CollectionLoader.java:36)
at org.hibernate.persister.collection.AbstractCollectionPersist er.initialize(AbstractCollectionPersister.java:565)
at org.hibernate.event.def.DefaultInitializeCollectionEventList ener.onInitializeCollection(DefaultInitializeCollectionEvent Listener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionI mpl.java:1716)
at org.hibernate.collection.AbstractPersistentCollection.initia lize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(A bstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentList.toArray(PersistentLi st.java:123)
at org.eclipse.emf.teneo.hibernate.mapping.elist.HibernatePersi stableEList.doLoad(HibernatePersistableEList.java:106)
at org.eclipse.emf.teneo.mapping.elist.PersistableEList.load(Pe rsistableEList.java:187)
at org.eclipse.emf.teneo.mapping.elist.PersistableEList.delegat eGet(PersistableEList.java:305)
at org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:378)
at com.pareis.trading.tests.ClientTest.testBug(ClientTest.java: 128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestRefer ence.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:386)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunne r.main(RemotePluginTestRunner.java:58)
at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.r un(CoreTestApplication.java:24)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)

It seems that this time hibernate itself recognizes that it made a mistake.

-Andre


Martin Taal wrote:
> Hi Andre,
> I didn't have time to look at this issue. However today and tomorrow I
> will work on a number of Teneo issues. I will also look further at this
> one.
>
> Can you test if superclass (single-table) also fails?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> I'm still having my time with that one...
>>
>> Do you have any idea what I could do as a temporary workaround?
>>
>> Can I disable the hibernate cache? Can I add some kind of annotation
>> to embed the owned object in the parent table? Should I use the
>> SUPERCLASS mapping?
>>
>> I really don't want to change my model to use one-to-many associations
>> only as I would lose the explicitness with that.
>>
>> Thanks
>> Andre
>>
>>
>> Martin Taal wrote:
>>> Hi Andre,
>>> This was/is a complex case. For me it works fine in case of a
>>> joined-subclass inheritance strategy but fails with single-table.
>>>
>>> After some debugging in Hibernate I can see that the following happens:
>>> When hibernate loads the vendors association it will also load the
>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>> objects use primary key association (see the hibernate manual for
>>> one-to-one) as a default. This means that when the vendors relation
>>> is read also its one-to-one's are read. Because they are all stored
>>> in one table and according to the mapping have the same id column
>>> Hibernate thinks that the one Yahoo record is a
>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>> Yahoo object is read it gets the already read
>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>> and the table is the same) and then throws an error because it
>>> expects a Yahoo.
>>>
>>> At the moment I am not sure where the solution for this can be done.
>>> One thing I can think of is that Teneo should use foreign-key
>>> one-to-one instead of the now default primary key.
>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>
>>> As a workaround, does joined-subclass work in your case?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Hi Martin,
>>>>
>>>> finally I have reduced the problem to a small test case. You should
>>>> be able to reconstruct the problem by executing the
>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>> The model project has a dependency on an "org.hibernate" plugin
>>>> containing the hibernate libs but I'm sure you have something
>>>> similar to replace that with. The model is in the
>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>> 2.2.1 stable.
>>>>
>>>> One more hint: As you can see in the model there are associations
>>>> between classes of different packages. This might also be a source
>>>> of the error.
>>>>
>>>> I really hope we can get this fixed otherwise I would have to use
>>>> non-appropriate one-to-many associations...
>>>>
>>>> Regards
>>>> Andre
>>>>
>>>>
>>>>
>>>> Martin Taal wrote:
>>>>> Hi,
>>>>> Strange. Which ereference is set?
>>>>> How does the database look like (tables and records in the table)?
>>>>> Do you see anything wrong there?
>>>>>
>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Here is the stack trace when I run into the code:
>>>>>>
>>>>>> 2034641 [main] ERROR
>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>>> saving resource trading
>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>> at
>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>> at
>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>
>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>
>>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>> at
>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>
>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>
>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>> wrong object.
>>>>>>>
>>>>>>> The debugger shows that target and value are the same object. The
>>>>>>> eReference value is strange, because there is actually no
>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>
>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>> load should have stopped already as there are no more objects to
>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Thanks
>>>>>>> Andre
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #595405 is a reply to message #60528] Fri, 10 November 2006 15:12 Go to previous message
Andre Pareis is currently offline Andre PareisFriend
Messages: 113
Registered: July 2009
Senior Member
Hi Martin,

because I seriously needed this part of the model now, and after a few attempts
to solve the issue using annotations I gave up and changed the model to utilize
a one-to-many associations instead of many one-to-one's. SO basically I have
found my workaround and it is not urgent any more...

THanks
Andre


Martin Taal wrote:
> Hi Andre,
> I didn't have time to look at this issue. However today and tomorrow I
> will work on a number of Teneo issues. I will also look further at this
> one.
>
> Can you test if superclass (single-table) also fails?
>
> gr. Martin
>
> Andre Pareis wrote:
>> Hi Martin,
>>
>> I'm still having my time with that one...
>>
>> Do you have any idea what I could do as a temporary workaround?
>>
>> Can I disable the hibernate cache? Can I add some kind of annotation
>> to embed the owned object in the parent table? Should I use the
>> SUPERCLASS mapping?
>>
>> I really don't want to change my model to use one-to-many associations
>> only as I would lose the explicitness with that.
>>
>> Thanks
>> Andre
>>
>>
>> Martin Taal wrote:
>>> Hi Andre,
>>> This was/is a complex case. For me it works fine in case of a
>>> joined-subclass inheritance strategy but fails with single-table.
>>>
>>> After some debugging in Hibernate I can see that the following happens:
>>> When hibernate loads the vendors association it will also load the
>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>> objects use primary key association (see the hibernate manual for
>>> one-to-one) as a default. This means that when the vendors relation
>>> is read also its one-to-one's are read. Because they are all stored
>>> in one table and according to the mapping have the same id column
>>> Hibernate thinks that the one Yahoo record is a
>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>> Yahoo object is read it gets the already read
>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>> and the table is the same) and then throws an error because it
>>> expects a Yahoo.
>>>
>>> At the moment I am not sure where the solution for this can be done.
>>> One thing I can think of is that Teneo should use foreign-key
>>> one-to-one instead of the now default primary key.
>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>
>>> As a workaround, does joined-subclass work in your case?
>>>
>>> gr. Martin
>>>
>>> Andre Pareis wrote:
>>>> Hi Martin,
>>>>
>>>> finally I have reduced the problem to a small test case. You should
>>>> be able to reconstruct the problem by executing the
>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>> The model project has a dependency on an "org.hibernate" plugin
>>>> containing the hibernate libs but I'm sure you have something
>>>> similar to replace that with. The model is in the
>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>> 2.2.1 stable.
>>>>
>>>> One more hint: As you can see in the model there are associations
>>>> between classes of different packages. This might also be a source
>>>> of the error.
>>>>
>>>> I really hope we can get this fixed otherwise I would have to use
>>>> non-appropriate one-to-many associations...
>>>>
>>>> Regards
>>>> Andre
>>>>
>>>>
>>>>
>>>> Martin Taal wrote:
>>>>> Hi,
>>>>> Strange. Which ereference is set?
>>>>> How does the database look like (tables and records in the table)?
>>>>> Do you see anything wrong there?
>>>>>
>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> Andre Pareis wrote:
>>>>>> Here is the stack trace when I run into the code:
>>>>>>
>>>>>> 2034641 [main] ERROR
>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception when
>>>>>> saving resource trading
>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>
>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>> at
>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>> at
>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>> at
>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>
>>>>>> at
>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>
>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>
>>>>>> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>> at
>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>> at
>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>> at
>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>
>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>> at
>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>> at
>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>
>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>> wrong object.
>>>>>>>
>>>>>>> The debugger shows that target and value are the same object. The
>>>>>>> eReference value is strange, because there is actually no
>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>
>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>> load should have stopped already as there are no more objects to
>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Thanks
>>>>>>> Andre
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>
>
Re: [teneo] ClassCastException during read of one-to-one mapping [message #595444 is a reply to message #60568] Fri, 10 November 2006 20:08 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Andre,
Well I added the property-ref to the one-to-one and now the test cases pass (the joined passed
anyway, but now single-table also passed). Are you able to test this by manually adapting the hbm.xml?
The property-ref should contain the efeature name on the opposite side.

I should have read your post on 22/10/06 better as you already mentioned this...

gr. Martin

Andre Pareis wrote:
> Hi Martin,
>
> because I seriously needed this part of the model now, and after a few
> attempts to solve the issue using annotations I gave up and changed the
> model to utilize a one-to-many associations instead of many
> one-to-one's. SO basically I have found my workaround and it is not
> urgent any more...
>
> THanks
> Andre
>
>
> Martin Taal wrote:
>> Hi Andre,
>> I didn't have time to look at this issue. However today and tomorrow I
>> will work on a number of Teneo issues. I will also look further at
>> this one.
>>
>> Can you test if superclass (single-table) also fails?
>>
>> gr. Martin
>>
>> Andre Pareis wrote:
>>> Hi Martin,
>>>
>>> I'm still having my time with that one...
>>>
>>> Do you have any idea what I could do as a temporary workaround?
>>>
>>> Can I disable the hibernate cache? Can I add some kind of annotation
>>> to embed the owned object in the parent table? Should I use the
>>> SUPERCLASS mapping?
>>>
>>> I really don't want to change my model to use one-to-many
>>> associations only as I would lose the explicitness with that.
>>>
>>> Thanks
>>> Andre
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi Andre,
>>>> This was/is a complex case. For me it works fine in case of a
>>>> joined-subclass inheritance strategy but fails with single-table.
>>>>
>>>> After some debugging in Hibernate I can see that the following happens:
>>>> When hibernate loads the vendors association it will also load the
>>>> one-to-one mappings from Yahoo to YahooIndicesComponentsSource and
>>>> YahooIndicesSeed. The onetoone mappings from Yahoo to the other
>>>> objects use primary key association (see the hibernate manual for
>>>> one-to-one) as a default. This means that when the vendors relation
>>>> is read also its one-to-one's are read. Because they are all stored
>>>> in one table and according to the mapping have the same id column
>>>> Hibernate thinks that the one Yahoo record is a
>>>> YahooIndicesComponentsSource and reads it from the db. Then when the
>>>> Yahoo object is read it gets the already read
>>>> YahooIndicesComponentsSource from the cache (as the id is the same
>>>> and the table is the same) and then throws an error because it
>>>> expects a Yahoo.
>>>>
>>>> At the moment I am not sure where the solution for this can be done.
>>>> One thing I can think of is that Teneo should use foreign-key
>>>> one-to-one instead of the now default primary key.
>>>> Can you enter a bugzilla for this issue? Then I will look at it.
>>>>
>>>> As a workaround, does joined-subclass work in your case?
>>>>
>>>> gr. Martin
>>>>
>>>> Andre Pareis wrote:
>>>>> Hi Martin,
>>>>>
>>>>> finally I have reduced the problem to a small test case. You should
>>>>> be able to reconstruct the problem by executing the
>>>>> com.pareis.trading.tests.ClientTest in the test plugin. It uses an
>>>>> included hsqldb which creates its DB files under C:/Temp/options.
>>>>> The model project has a dependency on an "org.hibernate" plugin
>>>>> containing the hibernate libs but I'm sure you have something
>>>>> similar to replace that with. The model is in the
>>>>> model/options.ecore file but everything is generated. I'm on EMF
>>>>> 2.2.1 stable.
>>>>>
>>>>> One more hint: As you can see in the model there are associations
>>>>> between classes of different packages. This might also be a source
>>>>> of the error.
>>>>>
>>>>> I really hope we can get this fixed otherwise I would have to use
>>>>> non-appropriate one-to-many associations...
>>>>>
>>>>> Regards
>>>>> Andre
>>>>>
>>>>>
>>>>>
>>>>> Martin Taal wrote:
>>>>>> Hi,
>>>>>> Strange. Which ereference is set?
>>>>>> How does the database look like (tables and records in the table)?
>>>>>> Do you see anything wrong there?
>>>>>>
>>>>>> Can you send me the ecore and a testcase to reproduce this?
>>>>>>
>>>>>> gr. Martin
>>>>>>
>>>>>> Andre Pareis wrote:
>>>>>>> Here is the stack trace when I run into the code:
>>>>>>>
>>>>>>> 2034641 [main] ERROR
>>>>>>> org.eclipse.emf.teneo.hibernate.HbStoreException - Exception
>>>>>>> when saving resource trading
>>>>>>> java.lang.ClassCastException: com.pareis.trading.yahoo.Yahoo
>>>>>>> at com.pareis.trading.yahoo.Yahoo.eInverseAdd(Yahoo.java:404)
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(Basi cEObjectImpl.java:985)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.mapping.property.EReferenceP ropertyHandler.set(EReferencePropertyHandler.java:124)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropert yValues(AbstractEntityTuplizer.java:337)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.persister.entity.AbstractEntityPersister.setPr opertyValues(AbstractEntityPersister.java:3499)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:129)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:842)
>>>>>>>
>>>>>>> at org.hibernate.loader.Loader.doQuery(Loader.java:717)
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:224)
>>>>>>>
>>>>>>> at org.hibernate.loader.Loader.doList(Loader.java:2144)
>>>>>>> at
>>>>>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2028)
>>>>>>> at org.hibernate.loader.Loader.list(Loader.java:2023)
>>>>>>> at
>>>>>>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 93)
>>>>>>> at
>>>>>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>>>>>
>>>>>>> at
>>>>>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>>>>>
>>>>>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>>>>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadUsingTopClasses(HibernateResource.java:319)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadFromStore(HibernateResource.java:305)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.hibernate.resource.HibernateResource.l oadResource(HibernateResource.java:260)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.teneo.resource.StoreResource.load(StoreResou rce.java:236)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditor.createModel(TradingEdito r.java:796)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditor.createPages(TradingEdito r.java:851)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:276)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:596)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:372)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:566)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:29 0)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:140)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:268)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:394)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1144)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1097)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.PartStack.showPart(PartStack.java:13 11)
>>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
>>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102 )
>>>>>>> at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
>>>>>>> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111 )
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:820)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:719)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:680)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2593)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2528)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPag e.java:2520)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2505)
>>>>>>> at
>>>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2500)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2477)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor.openEditor(Tradin gEditorAdvisor.java:440)
>>>>>>>
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$WindowAdvisor.pos tWindowOpen(TradingEditorAdvisor.java:177)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(Wor kbenchWindow.java:1128)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:685)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.openWindowsAfterRestore(Wo rkbench.java:2886)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1686)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1 650)
>>>>>>> at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1529 )
>>>>>>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.restoreState(Workbench.jav a:1473)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(Wor kbenchConfigurer.java:183)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:702)
>>>>>>>
>>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
>>>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:419)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>>>> at
>>>>>>> com.pareis.trading.ui.TradingEditorAdvisor$Application.run(T radingEditorAdvisor.java:97)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
>>>>>>>
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>>
>>>>>>> at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>>
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
>>>>>>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
>>>>>>> at org.eclipse.core.launcher.Main.run(Main.java:977)
>>>>>>> at org.eclipse.core.launcher.Main.main(Main.java:952)
>>>>>>>
>>>>>>> Andre Pareis wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I'm having a problem reading back a previously successful stored
>>>>>>>> one-to-one association. During load, a ClassCastException is
>>>>>>>> thrown. I have attached two files, one with the model and the
>>>>>>>> other one with a snapshot of the debugger showing the line which
>>>>>>>> when executed produces a ClassCastException somewhere in the
>>>>>>>> model code. That is, because the eInverseAdd is invoked with the
>>>>>>>> wrong object.
>>>>>>>>
>>>>>>>> The debugger shows that target and value are the same object.
>>>>>>>> The eReference value is strange, because there is actually no
>>>>>>>> corresponding object for this association to be found in the DB.
>>>>>>>>
>>>>>>>> The only objects that are in the DB are the parent of the Yahoo
>>>>>>>> object and the Yahoo object itself. The load of the parent and
>>>>>>>> the Yahoo objects have been passed successfully. Normally, the
>>>>>>>> load should have stopped already as there are no more objects to
>>>>>>>> read - instead, it ends up as shown on the debugger screen.
>>>>>>>>
>>>>>>>> Any ideas?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Andre
>>>>>>>>
>>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------ ------------
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Previous Topic:teneo - why tables for interfaces?
Next Topic:teneo and volume data
Goto Forum:
  


Current Time: Wed Jul 17 11:42:59 GMT 2024

Powered by FUDForum. Page generated in 0.09254 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top