You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Alejandro Anadon (Jira)" <ji...@apache.org> on 2020/08/19 17:10:00 UTC
[jira] [Created] (PHOENIX-6084) Error in public package when
builded
Alejandro Anadon created PHOENIX-6084:
-----------------------------------------
Summary: Error in public package when builded
Key: PHOENIX-6084
URL: https://issues.apache.org/jira/browse/PHOENIX-6084
Project: Phoenix
Issue Type: Bug
Components: core
Affects Versions: 5.0.0
Reporter: Alejandro Anadon
It is very easy to reproduce. Just download the 5.0.0-HBase-2.0 ([https://phoenix.apache.org/download.html)] and make the next (and very simple) class in java using the "phoenix-5.0.0-HBase-2.0-client.jar" that is inside of the package :
-----
import com.google.common.net.InternetDomainName;
public class TestBug{
public static void main(String[] args){
InternetDomainName domainName;
domainName=InternetDomainName.from("www.mydomain.com");
System.out.println(domainName.isUnderPublicSuffix());
domainName=InternetDomainName.from("www.mydomain.net");
System.out.println(domainName.isUnderPublicSuffix());
domainName=InternetDomainName.from("nonopublicsufix.org.apache.phoenix.shaded.net.al");
System.out.println(domainName.isUnderPublicSuffix());
domainName=InternetDomainName.from("org.apache.phoenix.shaded.net.al");
System.out.println(domainName.isPublicSuffix());
}
}
------
Expected result:
true -> [www.mydomain.com|http://www.mydomain.com/] is under .com public suffix
true -> [www.mydomain.net|http://www.mydomain.com/] is under .net public suffix
false -> nonopublicsufix.org.apache.phoenix.shaded.net.al is under NON public suffix org.apache.phoenix.shaded.net.al
false -> org.apache.phoenix.shaded.net.al is NOT a public sufix
Actually result:
true -> ok
false -> Error
true -> Error
true -> Error
I found the error in jar (I had not the knowledge to find it in the source code).
The error is in the actually class "com.google.common.net.TldPatterns" that is in the current jar "phoenix-5.0.0-HBase-2.0-client.jar".
If you decompile it , you can see something like this:
EXACT = ImmutableSet.of((Object)"ac", (Object)"com.ac", (Object)"edu.ac", (Object)"gov.ac", (Object)"org.apache.phoenix.shaded.net.ac", (Object)"mil.ac", (Object[])new String[] { "org.ac", "ad", "nom.ad", "ae", "co.ae", "org.apache.phoenix.shaded.net.ae", " ........
and it seems that all domains that should begings with "net" (p.e. "net.ac"), when building the file (it is a generated file), it makes a mistake and add "org.apache.phoenix.shaded" leaving it as "org.apache.phoenix.shaded.net.ac" and this makes the error.
I guest that as this is a generated class, there should be something bad when building the complete package.
I didn't test it in other versions (I solved it building my own classes; but it is not a clean solution).
I know that this bug is NOT from the core of Phoenix; but in my case, I uses the "phoenix-5.0.0-HBase-2.0-client.jar" for access to phenix, and the "com.google.common.net.InternetDomainName" class for domains funtions.
So I do not know if this is the right place to create the issue.
(I take the opportunity to ask something:
I have been able to conect phoenix using hibernate ORM satisfactorily .
I created a "Dialect" and make 3 o 4 changes in hibernate core to change "insert" to "upsert".
It is large to splain how I did it and it is not correct to do it here, but if somebody tell me the right place to do it, I'll do it).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)