openseedbox icon indicating copy to clipboard operation
openseedbox copied to clipboard

Job improvements: `java.lang.IllegalAccessException` prevents Node Poller job from scheduling

Open xabolcs opened this issue 3 years ago • 14 comments

(This is an old issue about Sieana accessing "private" and "protected" fields of Job classes)

After a few runs (in this example ~ 20 minutes) after startup the "Node Poller" job dies miserably:

frontend_1      | 09-Dec-2022 20:31:57.702 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [19364] milliseconds
frontend_1      | 21:49:39,993 ERROR ~ 
frontend_1      | @8000d6p9n
frontend_1      | Error during job execution (com.openseedbox.jobs.NodePollerJob)
frontend_1      | Execution exception (In /app/com/openseedbox/jobs/LoggedJob.java around line 40)
frontend_1      | SienaException occurred : java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
frontend_1      | play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
frontend_1      | 	at play.jobs.Job.call(Job.java:225)
frontend_1      | 	at Invocation.Job(Play!)
frontend_1      | Caused by: siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
frontend_1      | 	at siena.Util.readField(Util.java:310)
frontend_1      | 	at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
frontend_1      | 	at siena.jdbc.JdbcPersistenceManager.update(JdbcPersistenceManager.java:183)
frontend_1      | 	at siena.Model.update(Model.java:83)
frontend_1      | 	at com.openseedbox.jobs.LoggedJob.logResult(LoggedJob.java:40)
frontend_1      | 	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:31)
frontend_1      | 	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
frontend_1      | 	at play.jobs.Job.call(Job.java:214)
frontend_1      | 	... 1 more
frontend_1      | Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
frontend_1      | 	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
frontend_1      | 	at siena.Util.readField(Util.java:308)
frontend_1      | 	... 8 more

After that exception the NodePollerJob stops working. image

In the database the end_date is NULL for that record, so a last save() didn't happen. :shrug:

openseedbox=# \pset null '(null)'
Null display is "(null)".
openseedbox=# \timing 
Timing is on.
openseedbox=# select * from job_event order by id desc limit 10;
   id    | successful | stack_trace |       start_date        |        end_date         | duration_milliseconds |                      job_class                      |     job_title      
---------+------------+-------------+-------------------------+-------------------------+-----------------------+-----------------------------------------------------+--------------------
 2768663 | t          | (null)      | 2022-12-09 21:49:40.006 | 2022-12-09 21:49:40.14  |                   134 | com.openseedbox.jobs.NodePollerJob$NodePollerWorker | Node Poller Worker
 2768662 | f          | (null)      | 2022-12-09 21:49:39.774 | (null)                  |                     0 | com.openseedbox.jobs.NodePollerJob                  | Node Poller
 2768661 | t          | (null)      | 2022-12-09 21:49:29.797 | 2022-12-09 21:49:29.872 |                    75 | com.openseedbox.jobs.NodePollerJob$NodePollerWorker | Node Poller Worker
 2768660 | t          | (null)      | 2022-12-09 21:49:29.694 | 2022-12-09 21:49:29.695 |                     1 | com.openseedbox.jobs.NodePollerJob                  | Node Poller
 2768659 | t          | (null)      | 2022-12-09 21:49:19.651 | 2022-12-09 21:49:19.718 |                    67 | com.openseedbox.jobs.NodePollerJob$NodePollerWorker | Node Poller Worker
 2768658 | t          | (null)      | 2022-12-09 21:49:19.631 | 2022-12-09 21:49:19.632 |                     1 | com.openseedbox.jobs.NodePollerJob                  | Node Poller
 2768657 | t          | (null)      | 2022-12-09 21:49:09.611 | 2022-12-09 21:49:09.675 |                    64 | com.openseedbox.jobs.NodePollerJob$NodePollerWorker | Node Poller Worker
 2768656 | t          | (null)      | 2022-12-09 21:49:09.583 | 2022-12-09 21:49:09.584 |                     1 | com.openseedbox.jobs.NodePollerJob                  | Node Poller
 2768655 | t          | (null)      | 2022-12-09 21:48:59.529 | 2022-12-09 21:48:59.588 |                    59 | com.openseedbox.jobs.NodePollerJob$NodePollerWorker | Node Poller Worker
 2768654 | t          | (null)      | 2022-12-09 21:48:59.518 | 2022-12-09 21:48:59.52  |                     2 | com.openseedbox.jobs.NodePollerJob                  | Node Poller
(10 rows)

Time: 1.000 ms

xabolcs avatar Dec 10 '22 08:12 xabolcs

Another trace:

09:05:21,585 ERROR ~ 

@7o546a4np
Error during job execution (com.openseedbox.jobs.NodePollerJob$NodePollerWorker)

Execution exception (In /app/com/openseedbox/models/JobEvent.java around line 22)
SienaException occurred : java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.JobEvent with modifiers "private"

play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.JobEvent with modifiers "private"
        at play.jobs.Job.call(Job.java:225)
        at play.jobs.Job$1.call(Job.java:119)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.JobEvent with modifiers "private"
        at siena.Util.readField(Util.java:310)
        at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
        at siena.jdbc.PostgresqlPersistenceManager.insertWithAutoIncrementKey(PostgresqlPersistenceManager.java:57)
        at siena.jdbc.JdbcPersistenceManager.insert(JdbcPersistenceManager.java:161)
        at siena.Model.insert(Model.java:79)
        at com.openseedbox.models.JobEvent.<init>(JobEvent.java:22)
        at com.openseedbox.jobs.LoggedJob.getJobEvent(LoggedJob.java:36)
        at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:15)
        at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
        at play.jobs.Job.call(Job.java:214)
        ... 6 more
Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.JobEvent with modifiers "private"
        at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
        at siena.Util.readField(Util.java:308)
        ... 15 more

xabolcs avatar Dec 10 '22 09:12 xabolcs

@gregorkistler is this related to the Java 11 upgrade (#77)? :thinking:

xabolcs avatar Dec 10 '22 09:12 xabolcs

I can't believe you're still working on this. Keep fighting the good fight 💕

erindru avatar Dec 10 '22 09:12 erindru

~~I'm cooking a PR for these issues, so I want to document my work.~~ :sweat_smile:

Thanks for chiming in! :pray: Slowly I'm achieving your state too! :upside_down_face:

xabolcs avatar Dec 10 '22 09:12 xabolcs

is this related to the Java 11 upgrade (#77)? :thinking:

For the record: the referenced "protected" and "private" fields are good as is. No need to change them!

xabolcs avatar Dec 10 '22 09:12 xabolcs

@gregorkistler is this related to the Java 11 upgrade (#77)? 🤔

I rarely see those exceptions. Is it reproducible on your side?

gregorkistler avatar Dec 10 '22 09:12 gregorkistler

Yup, I got them sooner or later after the first startup. And of course I re-create my OpenSeedbox instance often.

As you wrote earlier somewhere else, a restart works around the issue.

xabolcs avatar Dec 10 '22 09:12 xabolcs

is this related to the Java 11 upgrade (#77)? :thinking:

It isn't! I was able to reproduce with Java 8 (and with commits from PR #100). :pray: :see_no_evil:

$ ../play/play-1.4.6/play run --%prod
~        _            _ 
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/   
~
~ play! 1.4.6, https://www.playframework.com
~ framework ID is prod
~
~ Ctrl+C to stop
~ 
~ using java version "1.8.0_352"
...
18:14:36,779 INFO  ~ Connected to jdbc:postgresql://172.17.0.2/openseedbox for default
18:14:36,792 INFO  ~ Siena DB Type: sql:postgresql
18:14:36,797 DEBUG ~ Siena DDL Type: postgresql
18:14:36,842 DEBUG ~ Siena DDL prod mode: update
18:14:37,047 DEBUG ~ Siena DDL Generator SQL: 
18:14:37,049 INFO  ~ Executed 0 SQL command(s) with 0 error(s)
18:14:37,054 INFO  ~ Application 'openseedbox' is now started !
18:14:37,126 INFO  ~ Listening for HTTP on port 9000 ...
18:15:17,106 ERROR ~ 

@800dh7afp
Error during job execution (com.openseedbox.jobs.NodePollerJob)

Execution exception (In /app/com/openseedbox/jobs/LoggedJob.java around line 39)
SienaException occurred : java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"

play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at play.jobs.Job.call(Job.java:225)
	at Invocation.Job(Play!)
Caused by: siena.SienaException: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.readField(Util.java:310)
	at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
	at siena.jdbc.JdbcPersistenceManager.update(JdbcPersistenceManager.java:183)
	at siena.Model.update(Model.java:83)
	at com.openseedbox.jobs.LoggedJob.logResult(LoggedJob.java:39)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:14)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:1)
	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:32)
	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
	at play.jobs.Job.call(Job.java:214)
	... 1 more
Caused by: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.readField(Util.java:308)
	... 10 more
^C~ ...

xabolcs avatar Dec 11 '22 17:12 xabolcs

Another example (with commits from PR #100): just clicking weirdly on the jobs view ...

18:28:45,237 ERROR ~ 

@800dj1o0n
Internal Server Error (500) for request GET /admin/jobs

Execution exception (In /app/com/openseedbox/models/JobEvent.java around line 41)
SienaException occurred : java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"

play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at play.mvc.ActionInvoker.invoke(ActionInvoker.java:485)
	at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:467)
	at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:436)
	at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
	at Invocation.HTTP Request(Play!)
Caused by: siena.SienaException: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.setField(Util.java:286)
	at siena.jdbc.JdbcMappingUtils.setFromObject(JdbcMappingUtils.java:205)
	at siena.jdbc.JdbcMappingUtils.mapField(JdbcMappingUtils.java:186)
	at siena.jdbc.JdbcMappingUtils.mapObject(JdbcMappingUtils.java:79)
	at siena.jdbc.JdbcMappingUtils.mapObject(JdbcMappingUtils.java:67)
	at siena.jdbc.JdbcMappingUtils.mapList(JdbcMappingUtils.java:92)
	at siena.jdbc.JdbcPersistenceManager.doFetch(JdbcPersistenceManager.java:636)
	at siena.jdbc.JdbcPersistenceManager.fetch(JdbcPersistenceManager.java:721)
	at siena.BaseQuery.fetch(BaseQuery.java:115)
	at play.modules.siena.QueryWrapper.fetch(QueryWrapper.java:111)
	at com.openseedbox.models.JobEvent.getLastList(JobEvent.java:41)
	at controllers.Admin.jobs(Admin.java:244)
	at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:536)
	at play.mvc.ActionInvoker.invoke(ActionInvoker.java:473)
	... 4 more
Caused by: java.lang.IllegalAccessException: Class siena.Util can not access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.setField(Util.java:284)
	... 17 more

xabolcs avatar Dec 11 '22 17:12 xabolcs

Another example: a few hours after startup. :shrug:

Both the poller job and the scheduler job failed.

30-Dec-2022 09:25:00.621 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/tomcat/webapps/ROOT] has finished in [33,766] ms
30-Dec-2022 09:25:00.636 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
30-Dec-2022 09:25:00.802 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [34315] milliseconds
16:07:02,069 ERROR ~ 
@805lcipnl
Error during job execution (com.openseedbox.jobs.NodePollerJob$NodePollerWorker)
Execution exception (In /app/com/openseedbox/models/JobEvent.java around line 22)
SienaException occurred : java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at play.jobs.Job.call(Job.java:225)
	at play.jobs.Job$1.call(Job.java:119)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.readField(Util.java:310)
	at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
	at siena.jdbc.PostgresqlPersistenceManager.insertWithAutoIncrementKey(PostgresqlPersistenceManager.java:57)
	at siena.jdbc.JdbcPersistenceManager.insert(JdbcPersistenceManager.java:161)
	at siena.Model.insert(Model.java:79)
	at com.openseedbox.models.JobEvent.<init>(JobEvent.java:22)
	at com.openseedbox.jobs.admin.LoggedAdminJob.getEvent(LoggedAdminJob.java:10)
	at com.openseedbox.jobs.node.LoggedNodeJob.getEvent(LoggedNodeJob.java:19)
	at com.openseedbox.jobs.admin.LoggedAdminJob.getEvent(LoggedAdminJob.java:1)
	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:17)
	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
	at play.jobs.Job.call(Job.java:214)
	... 6 more
Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
	at siena.Util.readField(Util.java:308)
	... 17 more
16:07:42,253 ERROR ~ 
@805lcipnn
Error during job execution (com.openseedbox.jobs.NodePollerJob)
Execution exception (In /app/com/openseedbox/jobs/admin/ErrorLoggedAdminJob.java around line 17)
SienaException occurred : java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.ModelBase with modifiers "protected"
play.exceptions.JavaExecutionException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.ModelBase with modifiers "protected"
	at play.jobs.Job.call(Job.java:225)
	at Invocation.Job(Play!)
Caused by: siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.ModelBase with modifiers "protected"
	at siena.Util.readField(Util.java:310)
	at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
	at siena.jdbc.JdbcPersistenceManager.delete(JdbcPersistenceManager.java:108)
	at siena.Model.delete(Model.java:75)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:17)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:1)
	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:34)
	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
	at play.jobs.Job.call(Job.java:214)
	... 1 more
Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.ModelBase with modifiers "protected"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
	at siena.Util.readField(Util.java:308)
	... 9 more

xabolcs avatar Dec 31 '22 14:12 xabolcs

Building the docker image natively "fixes" the problem for me. :woman_shrugging: I was able to reproduce this issue with running the arm64 image cross-built by an amd64 host. With running a natively built arm64 image on arm64 I'm unable to reproduce this java.lang.IllegalAccessException.

xabolcs avatar Jul 24 '23 07:07 xabolcs

24-Jul-2023 13:49:25.472 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [26574] milliseconds
13:52:06,501 WARN  ~ Unable to log result com.openseedbox.models.JobEvent@5dbb1c from job com.openseedbox.jobs.NodePollerJob
siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at siena.Util.readField(Util.java:310)
	at siena.jdbc.JdbcPersistenceManager.addParameters(JdbcPersistenceManager.java:370)
	at siena.jdbc.JdbcPersistenceManager.update(JdbcPersistenceManager.java:183)
	at siena.Model.update(Model.java:83)
	at com.openseedbox.jobs.LoggedJob.logResult(LoggedJob.java:42)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:14)
	at com.openseedbox.jobs.admin.ErrorLoggedAdminJob.logResult(ErrorLoggedAdminJob.java:1)
	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:34)
	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
	at play.jobs.Job.call(Job.java:214)
	at Invocation.Job(Play!)
Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.EventBase with modifiers "protected"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
	at siena.Util.readField(Util.java:308)
	... 10 more

Previously I thought that the native building of the Docker image helps, but it doesn't. Fortunately a simple try { ... } catch { ... } does the trick, as you can see it above!

xabolcs avatar Jul 24 '23 16:07 xabolcs

Fortunately a simple try { ... } catch { ... } does the trick, as you can see it above!

Committed as 03f4bdff8142052ff2c40af2bb57568d285fbf17. It is a good workaround for now.

xabolcs avatar Nov 19 '23 14:11 xabolcs

Long time no see! A startup "crash".

08:57:27,291 INFO  ~ Siena DB Type: sql:postgresql
08:57:27,322 DEBUG ~ Siena DDL Type: postgresql
08:57:27,965 DEBUG ~ Siena DDL prod mode: update
08:57:30,766 DEBUG ~ Siena DDL Generator SQL: 
08:57:30,782 INFO  ~ Executed 0 SQL command(s) with 0 error(s)
08:57:30,801 INFO  ~ Application 'openseedbox' is now started !
07-Feb-2024 08:57:31.160 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/tomcat/webapps/ROOT] has finished in [26,721] ms
07-Feb-2024 08:57:31.176 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
07-Feb-2024 08:57:31.245 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [27289] milliseconds
08:57:56,433 ERROR ~ Error executing job com.openseedbox.jobs.NodePollerJob$NodePollerWorker
siena.SienaException: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.Torrent with modifiers "private"
	at siena.Util.setField(Util.java:286)
	at siena.jdbc.JdbcMappingUtils.setFromObject(JdbcMappingUtils.java:205)
	at siena.jdbc.JdbcMappingUtils.mapField(JdbcMappingUtils.java:186)
	at siena.jdbc.JdbcMappingUtils.mapObject(JdbcMappingUtils.java:79)
	at siena.jdbc.JdbcMappingUtils.mapObject(JdbcMappingUtils.java:67)
	at siena.jdbc.JdbcMappingUtils.mapList(JdbcMappingUtils.java:92)
	at siena.jdbc.JdbcPersistenceManager.doFetch(JdbcPersistenceManager.java:636)
	at siena.jdbc.JdbcPersistenceManager.fetch(JdbcPersistenceManager.java:721)
	at siena.BaseQuery.fetch(BaseQuery.java:115)
	at play.modules.siena.QueryWrapper.fetch(QueryWrapper.java:111)
	at com.openseedbox.models.Torrent.getByHash(Torrent.java:46)
	at com.openseedbox.jobs.NodePollerJob$NodePollerWorker.doGenericJob(NodePollerJob.java:35)
	at com.openseedbox.jobs.GenericJob.runJob(GenericJob.java:21)
	at com.openseedbox.jobs.LoggedJob.runJob(LoggedJob.java:20)
	at com.openseedbox.jobs.GenericJob.doJobWithResult(GenericJob.java:15)
	at play.jobs.Job.call(Job.java:214)
	at play.jobs.Job$1.call(Job.java:119)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalAccessException: class siena.Util cannot access a member of class com.openseedbox.models.Torrent with modifiers "private"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source)
	at siena.Util.setField(Util.java:284)
	... 21 more

xabolcs avatar Feb 08 '24 08:02 xabolcs