[
https://issues.apache.org/jira/browse/DERBY-7006?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16647919#comment-16647919
]
Rick Hillegas commented on DERBY-7006:
--------------------------------------
Here is another issue with solution S2:
Every prepared statement has its own ClassLoader (an instance of
ReflectJavaLoader2). That ReflectJavaLoader2 loads the prepared statement's
generated class. This lets Derby garbage-collect the generated class along with
the prepared statement when the prepared statement is evicted from the
statement cache.
Under solution S2, the generated module is bound to the statement-specific
ReflectJavaLoader2. That is why solution S2 generates one module per prepared
statement. I do not see how to improve solution S2 in order to support both of
the following requirements:
1) generate a single module per database
2) continue to support the garbage-collection of statements when they are
evicted from the statement cache.
> Investigate putting generated classes under the engine module loader
> --------------------------------------------------------------------
>
> Key: DERBY-7006
> URL: https://issues.apache.org/jira/browse/DERBY-7006
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 10.15.0.0
> Reporter: Rick Hillegas
> Priority: Major
> Attachments: derby-7006-01-aa-remiForax.diff,
> derby-7006-01-ac-alanBateman.diff
>
>
> Right now, the generated query plans are compiled into the catch-all unnamed
> module. This forces us to grant reflective access to several engine packages.
> It would be nice to encapsulate the generated classes inside the engine
> module loader.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)