精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一起聊聊引入 JaCoCo導致的類型轉換問題,你明白了嗎?

開發 前端
圖片 01 問題描述 理解,首先 MCube 會依據模板緩存狀態判斷是否需要網絡獲取最新模板,當獲取到模板后進行模板加載,加載階段會將產物轉換為視圖樹的結構,轉換完成后將通過表達式引擎解析表達式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進行視圖的渲染,最終將 JaCoCo是一款被廣泛應用于公司內部的開源覆蓋率工具,將其引用至測

一、問題描述  

理解,首先 MCube 會依據模板緩存狀態判斷是否需要網絡獲取最新模板,當獲取到模板后進行模板加載,加載階段會將產物轉換為視圖樹的結構,轉換完成后將通過表達式引擎解析表達式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進行視圖的渲染,最終將

JaCoCo是一款被廣泛應用于公司內部的開源覆蓋率工具,將其引用至測試環境后,機器啟動正常,但在操作下單時出現異常,阻塞下單流程。

去除JaCoCo配置、重新編譯和部署后下單功能恢復正常。堆棧信息顯示,問題源于系統對請求字段進行加密時出現異常,因為無法完成類型轉換拋出異常,“[Z cannot be cast to [Ljava.lang.Object”,從而阻塞下單流程。

以下為報錯堆棧信息:

java.lang.ClassCastException: [Z cannot be cast to [Ljava.lang.Object;
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:93) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:133) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:90) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:133) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:90) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:133) 
  at com.jd.**.TdeProxy.encryptObject(TdeProxy.java:133)
  at com.jd.**.TdeProxy.$$FastClassBySpringCGLIB$$4fa3c52.invoke(<generated>) 
  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) 
  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769) 
    ..省略

二、問題分析

理解,首先 MCube 會依據模板緩存狀態判斷是否需要網絡獲取最新模板,當獲取到模板后進行模板加載,加載階段會將產物轉換為視圖樹的結構,轉換完成后將通過表達式引擎解析表達式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進行視圖的渲染,最終將

1.報錯代碼

定位報錯信息顯示的代碼位置,確認該部分代碼并沒有被修改過。報錯提示指出屬性應為數組類型,但在需要加密的類屬性中并沒有涉及數組類型的處理。那么“[Z”這個類型又是從何而來呢?這種情況下不禁讓人懷疑,在某個時刻類可能被修改過。

報錯信息中的"[Z"代表的是Java中的boolean類型數組。在Java中,基本數據類型的數組也會被表示為類似于"[Z"、"[B"、"[L"等形式的字符串,這可能是因為在程序運行過程中對類進行了動態修改或者反射操作導致的。

以下為報錯處的代碼片段,在將obj轉換為Object[]時出現異常,既然已經識別出是數組,但是又無法完成類型轉換,具體的原因需要進一步分析。

public void encryptObject(Object obj, String type) throws IllegalAccessException {
    /***省略***/
    if (Map.class.isAssignableFrom(clazz)) {
        /***省略***/
    } else if(Iterable.class.isAssignableFrom(clazz)) {
        /***省略***/
    } else if(clazz.isArray()) {
        /**********************報錯代碼行****************/
        for (Object o : (Object[]) obj) {
        /**********************報錯代碼行****************/
            this.encryptObject(o, type);
        }
    } else {
        Boolean encryptFlag = null;
        Field[] fields = this.getDeclaredFieldsAll(clazz);
        for (Field field : fields) {
            /***省略***/
        }
        /***省略***/
        for (Field field : fields) {
            Class fieldClazz = field.getType();
            if (fieldClazz == String.class) {
                /***省略***/
            } else {
                field.setAccessible(true);
                Object fieldValue = field.get(obj);
                this.encryptObject(fieldValue, type);
            }
        }
    }
}

2.分析路徑

閱讀代碼可以看出encryptObject方法是通過遞歸實現的,其主要功能是對有效集合進行遍歷,所以問題的重點不是遞歸的過程,而是推進遞歸過程的元素集合,集合中的元素無法正常進行類型轉換導致報錯,這就需要檢查getDeclaredFieldsAll方法,該方法在運行時返回的集合中可能包含意料之外的元素,以下為具體實現代碼:

public Field[] getDeclaredFieldsAll(Class clazz) {
    List<Field> fieldsList = new ArrayList<Field>();
    while (clazz != null) {
        Field[] declaredFields = clazz.getDeclaredFields();
        fieldsList.addAll(Arrays.asList(declaredFields));
        clazz = clazz.getSuperclass();
    }
    return fieldsList.toArray(new Field[fieldsList.size()]);
}

由于已確認引入JaCoCo后對類進行了修改,只需觸發任一流程以獲取類的所有屬性,通過設置斷點并觀察集合中的元素,即可查看具體修改情況。

圖片圖片

此時已經可以解釋為什么引入JaCoCo會導致異常。報錯中的類型“[Z”為合成的屬性,引入JaCoCo會給類添加一個名為$jacocoData的bool數組類型屬性,回到報錯代碼位置,出現報錯是因為在識別到一個數組類型時進行了類型轉換,在這里也找到了問題的答案。

涉及到合成屬性/方法和JaCoCo的實現原理,下面進行簡單的介紹。

3.追本溯源

(1)合成屬性和方法

合成屬性/方法是由Java編譯器在編譯過程中自動生成,并不是研發顯示編寫的,而是為了支持編譯器內部的實現細節而生成的,下面針對合成方法進行一個舉例說明。

public class Pack {
    public static void main(String[] args) {
        Pack.Goods goods = new Pack.Goods();
        System.out.println(goods.name);
    }
    private static class Goods {  
       private String name = "手機";
    }
}

將上面的代碼編譯一下,可以看到有三個文件,Pack$Goods.class、Pack.class、Pack$1.class,前兩個一個是內部類,一個是外部類,但是最后一個類并沒有被定義過,接下來分別將內部類和外部類進行反編譯:

import com.jd.ryan.test.Pack.1;
class Pack$Goods {
    private String name; 
    private Pack$Goods() {
        this.name = "手機";
    }
    Pack$Goods(1 x0) {
        this(); 
    }
    static String access$100(Pack$Goods x0) {
        return x0.name; 
    }
}

內部類被反編譯后,可以發現access$100的方法并沒有被定義,但是分析來看name是內部類Goods的私有屬性,但是外部類可以直接引用這個屬性,從語法結構上講這是被允許的,這就需要編譯器在編譯過程處理這種操作,在編譯器看來,外部類和內部類是兩個獨立的類,如果外部類想要訪問內部類的私有屬性,其實是與封裝原則相悖的。那接著看外部類的反編譯結果:

public class com.jd.ryan.test.Pack {
    public com.jd.ryan.test.Pack(); 
        Code:
            0: aload_0
            1: invokespecial #1 //Method java/lang/Object."<init>":()V
    public static void main(java.lang.String[]);
        Code:
            0: new #2           //class com/jd/ryan/test/Pack$Goods
            3: dup
            4: aconst_null
            5: invokespecial #3 //Method com/jd/ryan/test/Pack$Goods."<init>":(Lcom/jd/ryan/test/Pack$1;V
            8: astore_1
            9: getstatic #4     //Field java/lang/System.out:Ljava/io/Printstream;
            12: aload_1
            13: invokestatic #5 //Method com/jd/ryan/test/Pack$Goods.access$100:(Lcom/jd/ryan/test/Pack$Goods.access$100:(Lcom/jd/ryan/test/Pack$Goods;)Ljava/lang/String;
            16: invokevirtual #6//Method java/io/PrintStream.println:(Ljava/lang/String;)V
            19: return
}

在代碼實現中外部類直接打印內部類的name屬性值,來看這行指令:

“Method com/jd/ryan/test/Pack$Goods.access$100:(Lcom/jd/ryan/test/Pack$Goods.access$100:(Lcom/jd/ryan/test/Pack$Goods;)Ljava/lang/String;”

從字節碼中表明是通過調用了內部類的access$100方法,這個方法是一個靜態方法,它可以返回內部類的name屬性,是Goods的私有屬性,所以access$100就是編譯器用來做內部訪問生成的一個合成方法。

編譯器可以通過生成合成屬性和方法來實現一些內部優化或者內部實現,所以在使用反射機制實現一些工具時,在運行時拿到的類屬性信息還可能會有一些未知的屬性或者方法,這就需要工具類的代碼具備一定的健壯性,對獲取到的類屬性進行類型轉換時應該考慮到非業務字段的情況,并且能夠對運行時異常進行捕獲,讓工具聚焦在可以處理的范圍,不能影響正常的業務流程。

(2)JaCoCo原理簡述

JaCoCo利用ASM在字節碼中插入探針指針(Probe指針),每個探針都是一個布爾變量(true表示執行,false表示未執行)。程序運行時通過修改這些指針來檢測代碼的執行情況,而不會改變原始代碼的行為。提到的$jacocoData數組用于保存這些執行結果,JaCoCo根據控制流類型采用不同的探針插入策略,這些探針不會改變方法的行為,只是記錄它們已經執行的事實。

本文不再深入介紹JaCoCo的工作原理,感興趣的同學可以查閱資料。

三、解決方法

理解,首先 MCube 會依據模板緩存狀態判斷是否需要網絡獲取最新模板,當獲取到模板后進行模板加載,加載階段會將產物轉換為視圖樹的結構,轉換完成后將通過表達式引擎解析表達式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進行視圖的渲染,最終將

通過問題分析已經確定是$jacocoData導致的,那就需要在獲取屬性集合的的時對這類屬性進行過濾,實現方法通過isSynthetic()方法區分field屬性類型,isSynthetic是Java中的一個修飾符,用于標記一個類、方法或字段是否由編譯器生成。

List<Field> fieldsList = Arrays.stream(declaredFields)
                               .filter(field -> !field.isSynthetic())
                               .collect(Collectors.toList());

代碼修改后,測試環境添加JaCoCo相關配置,編譯部署發布后可正常下單,從斷點信息來看,$jacocoData已經被過濾掉了。

圖片圖片

四、總結

理解,首先 MCube 會依據模板緩存狀態判斷是否需要網絡獲取最新模板,當獲取到模板后進行模板加載,加載階段會將產物轉換為視圖樹的結構,轉換完成后將通過表達式引擎解析表達式并取得正確的值,通過事件解析引擎解析用戶自定義事件并完成事件的綁定,完成解析賦值以及事件綁定后進行視圖的渲染,最終將

本文主要是記錄一次由于引入JaCoCo后產生運行異常的排查過程,希望會對已使用和準備使用JaCoCo的研發、測試同學有所幫助,同時也希望大家在開發過程中使用反射機制實現工具類或者注解的同學,一定要了解一些編譯器編譯原理,有助于提升代碼的健壯性。

責任編輯:武曉燕 來源: 京東技術
相關推薦

2022-06-15 08:00:50

磁盤RedisRocketMQ

2023-10-31 14:04:17

Rust類型編譯器

2023-11-13 18:36:04

知識抽取NER

2023-04-13 08:40:12

MySQL服務器SELECT

2023-06-07 14:07:00

架構

2024-08-12 08:50:17

2022-04-01 08:48:45

JavaPythonRuby

2022-10-19 08:19:32

動態基線預警

2022-05-31 07:32:19

JDK8API工具

2023-05-29 09:07:10

SQLpageSize主鍵

2023-10-26 08:38:43

SQL排名平分分區

2025-01-06 09:26:49

2023-06-14 08:15:34

算法合并操作Winner

2022-10-24 20:25:40

云原生SpringJava

2024-02-28 08:41:51

Maven沖突版本

2022-03-03 09:20:08

分布式數據庫場景

2022-07-27 08:31:28

SQL開發控制

2024-05-30 08:19:52

微服務架構大型應用

2021-09-16 21:34:52

5G專線

2023-04-04 08:42:30

IT成本技術堆
點贊
收藏

51CTO技術棧公眾號

最近2019中文字幕在线高清| 精品久久久久久久久久久久| 国产成人精品免费久久久久 | 青草伊人久久| 国产精品进线69影院| 3d精品h动漫啪啪一区二区| 男女性高潮免费网站| 超碰97久久国产精品牛牛| 福利精品视频在线| 天堂av免费看| 日漫免费在线观看网站| 日本欧美一区二区在线观看| 欧美精品免费在线| 国产激情视频网站| 男人亚洲天堂| 午夜视频一区二区| 色撸撸在线观看| 日韩一二三四| 国产激情91久久精品导航| 欧亚精品在线观看| 激情五月婷婷在线| 欧美日韩在线二区| 亚洲大胆人体在线| 最新免费av网址| 蜜臀国产一区| 亚洲高清三级视频| 自拍视频一区二区三区| 美女做暖暖视频免费在线观看全部网址91 | 任你操这里只有精品| 在线免费观看污| 中文字幕欧美激情一区| 国新精品乱码一区二区三区18| 中文字幕福利视频| 亚洲一区二区三区免费在线观看 | 欧美无毛视频| 亚洲成人一区在线| 日韩国产精品毛片| 91caoporm在线视频| 久久亚洲欧美国产精品乐播| 国产成人看片| 亚洲成人精品女人久久久| 精品一区二区免费| 国产成人avxxxxx在线看| www日韩精品| 一区在线播放| 午夜精品久久久久久久白皮肤| 校园春色 亚洲| 伊人久久大香线蕉综合四虎小说 | 9999热视频| 精品国产一区二区三区| 亚洲午夜精品久久久久久性色| 性欧美丰满熟妇xxxx性久久久| 国内自拍欧美| 日韩av中文在线| 精品无码国产一区二区三区51安| www.豆豆成人网.com| 欧美一区2区视频在线观看| 中文字幕亚洲影院| www一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 潘金莲激情呻吟欲求不满视频| www.一区| 欧美乱熟臀69xxxxxx| 中文字幕第17页| 国产精品视频首页| 欧美成人性福生活免费看| 伊人久久久久久久久| 少妇精品在线| 亚洲国产精品va在线| 艳妇乳肉亭妇荡乳av| 网红女主播少妇精品视频| 亚洲人成网站免费播放| 亚洲一区视频在线播放| 四虎成人av| 欧美成人午夜免费视在线看片 | 日本a在线播放| 亚洲欧美一区二区在线观看| 国产亚洲精品久久久久久久| 99色在线观看| 日本韩国一区二区三区视频| av网站在线不卡| 九色精品蝌蚪| 日韩av在线一区| 99自拍偷拍视频| 欧美国产另类| 欧美中文在线观看国产| 亚洲在线精品视频| 国产成人欧美日韩在线电影| 久久精品中文字幕一区二区三区 | 亚洲丝袜啪啪| 在线观看欧美日韩| 青青青在线免费观看| 一本色道88久久加勒比精品| 欧洲成人午夜免费大片| 一级做a爱片久久毛片| 成人三级在线视频| 三级三级久久三级久久18| 91网在线看| 一本大道综合伊人精品热热| 亚洲网中文字幕| 红杏一区二区三区| 最近2019年中文视频免费在线观看| 免费高清在线观看电视| 99亚洲精品| 国产一区香蕉久久| 人妻与黑人一区二区三区| 国产婷婷色一区二区三区四区| 奇米影视7777精品一区二区| 久精品免费视频| 日韩不卡视频在线| 精品无人区卡一卡二卡三乱码免费卡 | 日韩精品一区二区三| 丝瓜av网站精品一区二区| 91精品在线看| 国产在线日本| 亚洲国产综合色| 狠狠干狠狠操视频| 国产成人短视频在线观看| 欧美成人免费全部观看天天性色| 国内精品福利视频| 风间由美性色一区二区三区| 午夜精品一区二区在线观看| 亚洲最大成人| 欧美精品一区二区在线观看| 成人性视频免费看| 性一交一乱一区二区洋洋av| 99精彩视频在线观看免费| porn视频在线观看| 狠狠色狠狠色综合日日小说| 欧美日韩一区二区区别是什么| 国产一区日韩| 3344国产精品免费看| 亚洲第一精品网站| 亚洲日本丝袜连裤袜办公室| 亚洲高清在线免费观看| 日韩大胆成人| 久久久亚洲影院| www久久久久久| 亚洲精品免费在线| 中文字幕第一页在线视频| 精品美女视频| 国产极品精品在线观看| 男男电影完整版在线观看| 天天色图综合网| 人妻在线日韩免费视频| 99xxxx成人网| 久久99久久99精品蜜柚传媒| 91探花在线观看| 亚洲精品一区在线观看| 久热精品在线观看| 粉嫩欧美一区二区三区高清影视| 久久免费看毛片| 国产aa精品| 欧美成人免费大片| 亚洲国产精品久久久久久6q | 一区二区三区视频免费在线观看| 黄色一级片免费在线观看| 99riav久久精品riav| 黄色一级视频片| 日韩av网址大全| 热99精品只有里视频精品| 欧洲毛片在线| 欧美性色黄大片| 国产人与禽zoz0性伦| 国精产品一区一区三区mba视频| 在线观看视频黄色| 成人自拍在线| 51精品在线观看| 成年人视频网站在线| 女生裸体视频一区二区三区| 久久艳片www.17c.com | 国产亚洲激情视频在线| а中文在线天堂| 综合色天天鬼久久鬼色| 国产xxxxhd| 亚洲视频播放| 亚洲成色www久久网站| a一区二区三区亚洲| 色综合男人天堂| 日本护士...精品国| 欧美亚洲综合一区| www.超碰在线观看| 99精品视频在线播放观看| 国产精品涩涩涩视频网站| 97视频热人人精品免费| 成人在线免费网站| 欧美色网一区| 欧美大奶子在线| 黄视频在线观看免费| 欧美精品三级在线观看| 国产一级淫片a| 欧美国产97人人爽人人喊| 丰满少妇中文字幕| 美女尤物久久精品| 国产精品啪啪啪视频| 日韩精品福利一区二区三区| 国产欧美亚洲视频| 国产不卡123| 色婷婷av一区二区三区在线观看 | 自拍偷拍亚洲| 欧美在线www| 中文在线免费| 怡红院精品视频| 秋霞欧美在线观看| 欧美日韩激情在线| 性无码专区无码| 亚洲激情男女视频| 手机看片日韩av| 99久久夜色精品国产网站| 福利视频999| 视频一区二区三区在线| 少妇一晚三次一区二区三区| 欧美性感美女一区二区| 好看的日韩精品| 精品国产亚洲日本| 国产精品美女视频网站| 123区在线| 欧美另类69精品久久久久9999| 久热av在线| 亚洲国产精品yw在线观看| 99精品视频免费看| 欧美图片一区二区三区| 依依成人综合网| 亚洲午夜在线观看视频在线| 国产精品视频一区二区在线观看| 91看片淫黄大片一级在线观看| av地址在线观看| 精品亚洲成a人| 亚洲美女性囗交| 青青草国产成人av片免费| 欧美色图另类小说| 99人久久精品视频最新地址| 青青在线免费观看| 国产精品啊啊啊| 亚洲欧洲一区二区在线观看| 精品久久久亚洲| 日韩欧美一区二区在线观看 | 亚洲**2019国产| 国产福利在线| 日韩电视剧在线观看免费网站| www.成人免费视频| 8v天堂国产在线一区二区| 中文字幕乱码无码人妻系列蜜桃| 一本久久a久久精品亚洲| 亚洲黄色一区二区| 午夜精品爽啪视频| 日本网站免费观看| 亚洲国产另类av| 日本午夜小视频| 亚洲成人激情自拍| 国产欧美日韩另类| 欧美小视频在线观看| 国产黄色免费观看| 色偷偷久久人人79超碰人人澡| 中文字幕一区二区人妻电影| 色婷婷综合久久久久中文一区二区| 欧美h在线观看| 在线一区二区三区做爰视频网站| 无码人妻丰满熟妇奶水区码| 在线免费精品视频| 中文字幕丰满人伦在线| 欧美日韩国产高清一区二区| 国产免费福利视频| 日韩精品资源二区在线| 高h放荡受浪受bl| 日韩精品极品视频| 国产在线观看免费| xvideos亚洲人网站| 日韩精品分区| 91精品国产91久久久久久久久 | 91久久在线播放| 中文字幕区一区二区三| 国产在线精品一区二区三区| 日韩电影不卡一区| 婷婷四月色综合| 中文字幕一区二区av| 青青草成人免费在线视频| 久久激情一区| 一级黄色片国产| 99久久夜色精品国产网站| 蜜臀久久99精品久久久久久| 亚洲视频在线观看一区| 国产一级片免费| 91精品办公室少妇高潮对白| 国产又大又黑又粗| 亚洲娇小xxxx欧美娇小| 成人午夜影视| 欧美激情中文字幕乱码免费| 久久久人成影片一区二区三区在哪下载 | 性欧美.com| 欧美色图首页| 91蝌蚪视频在线观看| 国内精品伊人久久久久影院对白| 亚洲熟女一区二区三区| 久久精品人人做人人爽97 | 欧美午夜视频在线观看| 91theporn国产在线观看| 精品久久人人做人人爽| 成人一区二区不卡免费| 欧美激情2020午夜免费观看| 欧美三区四区| 国产精品区免费视频| 日韩精品久久久久久久电影99爱| 欧美中文字幕在线观看视频 | aaaaa黄色片| 国产日产欧美一区| 日本三级理论片| 欧美久久久久久久久久| 可以免费看污视频的网站在线| 久99久在线视频| 未满十八勿进黄网站一区不卡| 国产一级精品aaaaa看| 97精品在线| 老司机午夜av| 久久综合久久综合久久综合| 黄色一级视频在线观看| 欧美乱熟臀69xxxxxx| 国产精品一二三区视频| 午夜欧美不卡精品aaaaa| 精品视频在线播放一区二区三区| 久久精品国产免费| 99视频精品免费| 99精品视频在线观看| 国产这里有精品| 欧美老肥妇做.爰bbww| 国产精品一区二区婷婷| 日本成人黄色片| 欧美影院天天5g天天爽| 久久99久久久久久| 国产精品 欧美精品| 潘金莲一级黄色片| 欧美日韩电影在线播放| chinese偷拍一区二区三区| 2019中文字幕在线| 国产成人夜色高潮福利影视| 欧美做受777cos| 精品一区二区三区日韩| 亚洲 欧美 国产 另类| 欧美日韩电影在线| 麻豆网站在线看| 成人妇女免费播放久久久| 91一区在线| 国产免费中文字幕| 亚洲丝袜自拍清纯另类| 欧美日韩在线视频播放| 国产亚洲精品91在线| 国精产品一区二区三区有限公司| 热re99久久精品国99热蜜月| 美女精品在线| 女人黄色一级片| 欧美日韩在线不卡| 秋霞影院午夜丰满少妇在线视频| 国产欧美婷婷中文| 在线中文一区| 中文字幕99页| 黄色成人在线播放| 日韩国产福利| 国产精品久久久久77777| 日韩电影免费网站| 亚洲国产午夜精品| 一区二区三区四区高清精品免费观看| 午夜精品久久久久久久99 | 免费无遮挡无码永久在线观看视频| 日韩欧美视频在线| 成av人片在线观看www| 欧美高清视频一区| 免费在线观看不卡| 玖玖爱这里只有精品| 亚洲国产欧美一区二区丝袜黑人 | 青青草自拍偷拍| 51精品国自产在线| 污污在线观看| 麻豆成人av| 精品一区免费av| 国产一级视频在线观看| 日韩电影第一页| 日韩黄色三级在线观看| 日韩a级黄色片| 久久久久久久av麻豆果冻| 亚洲综合免费视频| 久久久久免费精品国产| 国产99精品| 中文字幕avav| 日韩欧美成人免费视频| 日本高清中文字幕在线| 99在线国产| 人人狠狠综合久久亚洲| 色欲一区二区三区精品a片| 精品国产乱码久久| 成人涩涩视频| 久操手机在线视频| 久久久久成人黄色影片| 国产手机av在线| 欧美在线视频免费观看| 中文字幕一区二区三区在线视频| 国产精品无码一区二区三区| 欧美一级日韩免费不卡| 成人性生活视频| 日本国产中文字幕| 中文字幕欧美国产|