[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #58119] isa() does not respect interfaces inhe
From: |
Andrew Janke |
Subject: |
[Octave-bug-tracker] [bug #58119] isa() does not respect interfaces inherited from superclasses for Java objects |
Date: |
Sun, 5 Apr 2020 13:01:32 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:74.0) Gecko/20100101 Firefox/74.0 |
URL:
<https://savannah.gnu.org/bugs/?58119>
Summary: isa() does not respect interfaces inherited from
superclasses for Java objects
Project: GNU Octave
Submitted by: apjanke
Submitted on: Sun 05 Apr 2020 01:01:31 PM EDT
Category: Octave Function
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Incorrect Result
Status: None
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Release: 5.2.0
Discussion Lock: Any
Operating System: Mac OS
_______________________________________________________
Details:
It seems that isa(), when called on a Java object, doesn't properly respect
interface inheritance from superclasses.
I have a method written against the org.slf4j.Logger interface. It should
accept instances of any class that implements that interface, either directly
or through inheritance. In some of my code, my method is receiving
org.slf4j.impl.Log4jLoggerAdapter objects and storing them in a variable named
jLogger. This class is an indirect subclass of
org.slf4j.helpers.NamedLoggerBase, which implements org.slf4j.Logger. However,
isa(jLogger, 'org.slf4j.Logger') returns false.
{verbatim}
debug> jLogger
jLogger =
<Java object: org.slf4j.impl.Log4jLoggerAdapter>
debug> klass = jLogger.getClass;
debug> klass.getName
ans = org.slf4j.impl.Log4jLoggerAdapter
debug> superklass1 = klass.getSuperclass;
debug > superklass1.getName
ans = org.slf4j.helpers.MarkerIgnoringBase
debug> superklass2 = superklass1.getSuperclass;
debug> superklass2.getName
ans = org.slf4j.helpers.NamedLoggerBase
debug> ifcs2 = superklass2.getInterfaces;
debug> ifcs2(1).getName
ans = org.slf4j.Logger
debug> isa(jLogger, 'org.slf4j.Logger')
ans = 0
{verbatim}
Affects Octave 4.4.1 and 5.2.0. This is on macOS, but I'd suspect it affects
all OSes.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?58119>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #58119] isa() does not respect interfaces inherited from superclasses for Java objects,
Andrew Janke <=