[
https://issues.apache.org/jira/browse/FINERACT-826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17087193#comment-17087193
]
Percy Ashu commented on FINERACT-826:
-------------------------------------
[~vorburger] Seem the timezone_id in the tenants table is already set to NOT
NULL and taking a closer look at the code shows that
ThreadLocalContextUtil.getTenant() which returns the value in the current
thread's copy of tenantcontext variable may be returning null. It is possible
that some other thread is changing value stored in tenantcontext to {{null.
Hence the check to see if tenant is null.}}
> org.apache.fineract.infrastructure.core.service.DateUtils has un-used line,
> and should use java.time instead of Joda API
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: FINERACT-826
> URL: https://issues.apache.org/jira/browse/FINERACT-826
> Project: Apache Fineract
> Issue Type: Bug
> Affects Versions: 1.4.0
> Reporter: Michael Vorburger
> Assignee: Percy Ashu
> Priority: Major
> Fix For: 1.4.0
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> [http://mail-archives.apache.org/mod_mbox/fineract-dev/201907.mbox/%3ccalix4ib1d32zskzn87kureosbwscjmo9dhgnoqbwydyui-c...@mail.gmail.com%3e,]
> and the original previous and the follow up replies on that thread Subject
> "Questions about my approach to find problems with tenant time zones, and
> about the instance values of SQL migration files.", related to FINERACT-723?
> I think, point out that
> {{org.apache.fineract.infrastructure.core.service.DateUtils}} could do with a
> closer look and fixes, specifically:
> {quote}That DateUtils class is interesting.. do we really need to mix the old
> java.util.Date API and the org.joda.time Time API ? FYI Joda Time has been
> integrated into Java 8 as java.time. So if someone was up for taking up work
> related to cleaning that up, that could be useful IMHO (so converge
> everything to java.time, and eventually remove the Joda dependency, and
> introduce an enforced check via Checkstle or SpotBugs to forbid
> java.util.Date).
>
> The null management in DateUtils is pretty interesting as well. So is this
> per tenant TZ guaranteed to always be in the DB? What does the DB schema say
> - required, never NULL? Does the Java code ensure it's never null? I'm asking
> these questions because something like that getLocalDateTimeOfTenant(),
> despite its name, seems to be actually be written to EITHER give us a "local"
> time based on the tenant, or, if that's null, it just falls back to what l
> suspect (not verified) is dependent on the OS / JVM TZ - that's scary.
> Perhaps it's not a problem in reality, if every tenant is guaranteed to
> always have a TZ, but if someone could double check this, and if so remove
> those null check and system dependent fallbacks, then IMHO that would make
> that utility code clearer.
>
> BTW line 45 in DateUtils seems completely useless, agreed? Would you like to
> raise a PR proposing to ditch that?
> {quote}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)