[
https://issues.apache.org/jira/browse/IGNITE-1695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Goncharuk resolved IGNITE-1695.
--------------------------------------
Resolution: Fixed
Fixed writing polymorphic types. Fix merged to ignite-1.5 branch (after EA)
> PortableMarshaller get "Can not set final java.util.Queue field
> org.apache.ignite.examples.computegrid" exception when
> ComputeContinuousMapperExample is running
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-1695
> URL: https://issues.apache.org/jira/browse/IGNITE-1695
> Project: Ignite
> Issue Type: Bug
> Components: general
> Affects Versions: 1.5
> Environment: Ubuntu 14.04, community 1.5.0 build #319
> Reporter: Vasilisa Sidorova
> Assignee: Alexey Goncharuk
> Fix For: 1.6
>
>
> ---------------------------------------------
> DESCRIPTION
> ---------------------------------------------
> When default optimizedMarshaller is changed into portableMarshaller in
> example-ignite.xml then ComputeContinuousMapperExample is failed with this
> config due to incorrect work of portableMarshaller
> ---------------------------------------------
> STEPS FOR REPRODUCE
> ---------------------------------------------
> 1. Build examples project in IDE
> 2.In the example-ignite.xml change property from:
> {noformat}
> <property name="marshaller">
> <bean
> class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller"> -->
> <!-- Set to false to allow non-serializable objects in
> examples, default is true. -->
> <!-- <property name="requireSerializable" value="false"/>
> </bean>
> </property>
> {noformat}
> to
> {noformat}
> <property name="marshaller">
> <bean class="
> org.apache.ignite.internal.portable.api.PortableMarshaller"/>
> </property>
> {noformat}
> 3. Run ExampleNodeStartup
> 4. Run ComputeContiuousMapperExample
> ---------------------------------------------
> ACTUAL RESULT
> ---------------------------------------------
> Example is failed with exception:
> {noformat}
> [16:55:22,620][ERROR][ignite-#28%sys-null%][GridTaskWorker] Failed to obtain
> remote job result policy for result from ComputeTask.result(..) method (will
> fail the whole task): GridJobResultImpl
> [job=o.a.i.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask$1@95be237c,
> sib=GridJobSiblingImpl
> [sesId=b5798cb6051-006ac327-4ba6-44fe-9688-469189c8cb18,
> jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6,
> nodeId=fca6518a-6843-4b3a-97cd-d5010a71e5c6, isJobDone=false],
> jobCtx=GridJobContextImpl
> [jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6, timeoutObj=null,
> attrs={}], node=TcpDiscoveryNode [id=fca6518a-6843-4b3a-97cd-d5010a71e5c6,
> addrs=[127.0.0.1], sockAddrs=[/127.0.0.1:47500], discPort=47500, order=1,
> intOrder=1, lastExchangeTime=1444917320434, loc=false,
> ver=1.5.0#20151012-sha1:6844370d, isClient=false], ex=class
> o.a.i.compute.ComputeUserUndeclaredException: Failed to execute job due to
> unexpected runtime exception
> [jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6,
> ses=GridJobSessionImpl [ses=GridTaskSessionImpl
> [taskName=o.a.i.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask,
> dep=GridDeployment [ts=1444917321187, depMode=SHARED,
> clsLdr=sun.misc.Launcher$AppClassLoader@9f78b40f,
> clsLdrId=12958cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6, userVer=0,
> loc=true,
> sampleClsName=o.a.i.i.processors.cache.distributed.dht.preloader.GridDhtPartitionMap,
> pendingUndeploy=false, undeployed=false, usage=1],
> taskClsName=o.a.i.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask,
> sesId=b5798cb6051-006ac327-4ba6-44fe-9688-469189c8cb18,
> startTime=1444917321444, endTime=9223372036854775807,
> taskNodeId=006ac327-4ba6-44fe-9688-469189c8cb18,
> clsLdr=sun.misc.Launcher$AppClassLoader@9f78b40f, closed=false, cpSpi=null,
> failSpi=null, loadSpi=null, usage=1, fullSup=false,
> subjId=006ac327-4ba6-44fe-9688-469189c8cb18, mapFut=IgniteFuture
> [orig=GridFutureAdapter [resFlag=0, res=null, startTime=1444917322581,
> endTime=0, ignoreInterrupts=false, lsnr=null, state=INIT]]],
> jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6]], hasRes=true,
> isCancelled=false, isOccupied=true]
> class org.apache.ignite.IgniteException: Remote job threw user exception
> (override or implement ComputeTask.result(..) method if you would like to
> have automatic failover for this exception).
> at
> org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:101)
> at
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask.result(ComputeContinuousMapperExample.java:121)
> at
> org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:903)
> at
> org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:896)
> at
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6403)
> at
> org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:896)
> at
> org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:792)
> at
> org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:995)
> at
> org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1219)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
> at java.lang.Thread.run(Thread.java:809)
> Caused by: class org.apache.ignite.compute.ComputeUserUndeclaredException:
> Failed to execute job due to unexpected runtime exception
> [jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6,
> ses=GridJobSessionImpl [ses=GridTaskSessionImpl
> [taskName=org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask,
> dep=GridDeployment [ts=1444917321187, depMode=SHARED,
> clsLdr=sun.misc.Launcher$AppClassLoader@9f78b40f,
> clsLdrId=12958cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6, userVer=0,
> loc=true,
> sampleClsName=org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap,
> pendingUndeploy=false, undeployed=false, usage=1],
> taskClsName=org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask,
> sesId=b5798cb6051-006ac327-4ba6-44fe-9688-469189c8cb18,
> startTime=1444917321444, endTime=9223372036854775807,
> taskNodeId=006ac327-4ba6-44fe-9688-469189c8cb18,
> clsLdr=sun.misc.Launcher$AppClassLoader@9f78b40f, closed=false, cpSpi=null,
> failSpi=null, loadSpi=null, usage=1, fullSup=false,
> subjId=006ac327-4ba6-44fe-9688-469189c8cb18, mapFut=IgniteFuture
> [orig=GridFutureAdapter [resFlag=0, res=null, startTime=1444917322581,
> endTime=0, ignoreInterrupts=false, lsnr=null, state=INIT]]],
> jobId=46798cb6051-fca6518a-6843-4b3a-97cd-d5010a71e5c6]]
> Caused by: java.lang.IllegalArgumentException: Can not set final
> java.util.Queue field
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask.words
> to java.util.ArrayList
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:177)
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:181)
> at
> sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.set(UnsafeQualifiedObjectFieldAccessorImpl.java:96)
> at java.lang.reflect.Field.set(Field.java:754)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor$FieldInfo.read(PortableClassDescriptor.java:1230)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor.read(PortableClassDescriptor.java:614)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.deserialize(PortableReaderExImpl.java:2160)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.doReadObject(PortableReaderExImpl.java:2102)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.readObject(PortableReaderExImpl.java:572)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor$FieldInfo.read(PortableClassDescriptor.java:1215)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor.read(PortableClassDescriptor.java:614)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.deserialize(PortableReaderExImpl.java:2160)
> at
> org.apache.ignite.internal.portable.GridPortableMarshaller.deserialize(GridPortableMarshaller.java:274)
> at
> org.apache.ignite.internal.portable.api.PortableMarshaller.unmarshal(PortableMarshaller.java:328)
> at
> org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:409)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1094)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1776)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
> at java.lang.Thread.run(Thread.java:809)
> [16:55:22] Ignite node stopped OK [uptime=00:00:01:242]
> Exception in thread "main" class org.apache.ignite.IgniteException: Can not
> set final java.util.Queue field
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask.words
> to java.util.ArrayList
> at
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
> at
> org.apache.ignite.internal.IgniteComputeImpl.execute(IgniteComputeImpl.java:174)
> at
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample.main(ComputeContinuousMapperExample.java:72)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
> at java.lang.reflect.Method.invoke(Method.java:620)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
> Caused by: class org.apache.ignite.IgniteCheckedException: Can not set final
> java.util.Queue field
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask.words
> to java.util.ArrayList
> at
> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979)
> at
> org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166)
> at
> org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115)
> at
> org.apache.ignite.internal.AsyncSupportAdapter.saveOrGet(AsyncSupportAdapter.java:112)
> at
> org.apache.ignite.internal.IgniteComputeImpl.execute(IgniteComputeImpl.java:171)
> ... 6 more
> Caused by: java.lang.IllegalArgumentException: Can not set final
> java.util.Queue field
> org.apache.ignite.examples.computegrid.ComputeContinuousMapperExample$ContinuousMapperTask.words
> to java.util.ArrayList
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:177)
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:181)
> at
> sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.set(UnsafeQualifiedObjectFieldAccessorImpl.java:96)
> at java.lang.reflect.Field.set(Field.java:754)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor$FieldInfo.read(PortableClassDescriptor.java:1230)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor.read(PortableClassDescriptor.java:614)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.deserialize(PortableReaderExImpl.java:2160)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.doReadObject(PortableReaderExImpl.java:2102)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.readObject(PortableReaderExImpl.java:572)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor$FieldInfo.read(PortableClassDescriptor.java:1215)
> at
> org.apache.ignite.internal.portable.PortableClassDescriptor.read(PortableClassDescriptor.java:614)
> at
> org.apache.ignite.internal.portable.PortableReaderExImpl.deserialize(PortableReaderExImpl.java:2160)
> at
> org.apache.ignite.internal.portable.GridPortableMarshaller.deserialize(GridPortableMarshaller.java:274)
> at
> org.apache.ignite.internal.portable.api.PortableMarshaller.unmarshal(PortableMarshaller.java:328)
> at
> org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:409)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1094)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1776)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
> at java.lang.Thread.run(Thread.java:809)
> {noformat}
> ---------------------------------------------
> EXPECTED RESULT
> ---------------------------------------------
> Example is passed without any exceptions
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)