Skip to content

Parsing a Session Description on Android causes a NullPointerException. #267

@jussme

Description

@jussme

Artifact version: 3.0-61-g76e8a19

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.util.Hashtable.get(java.lang.Object)' on a null object reference
    at gov.nist.core.LexerCore.match(LexerCore.java:226)
    at gov.nist.javax.sdp.parser.OriginFieldParser.originField(OriginFieldParser.java:52)
    at gov.nist.javax.sdp.parser.OriginFieldParser.parse(OriginFieldParser.java:108)
    at gov.nist.javax.sdp.parser.SDPAnnounceParser.parse(SDPAnnounceParser.java:113)
    at org.opentelecoms.javax.sdp.NistSdpFactory.createSessionDescription(NistSdpFactory.java:62)
    at pl.mk.touchpad.server.ext.SdpUtils.parseSDP(SdpUtils.java:76)
    at pl.mk.touchpad.server.ext.RemoteConnector.pair(RemoteConnector.java:62)
    at pl.mk.touchpad.connection.net.punching.RemoteActiveConnector.connect(RemoteActiveConnector.java:66)
    at pl.mk.touchpad.connection.ControllingActivity.lambda$onCreate$0$pl-mk-touchpad-connection-ControllingActivity(ControllingActivity.java:53)
    at pl.mk.touchpad.connection.ControllingActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
    at java.lang.Thread.run(Thread.java:784)
java.text.ParseException: o=ice4j.org 0 0 IN IP4 123.12.123.123
    at gov.nist.javax.sdp.parser.OriginFieldParser.originField(OriginFieldParser.java:103)
    at gov.nist.javax.sdp.parser.OriginFieldParser.parse(OriginFieldParser.java:108)
    at gov.nist.javax.sdp.parser.SDPAnnounceParser.parse(SDPAnnounceParser.java:113)
    at org.opentelecoms.javax.sdp.NistSdpFactory.createSessionDescription(NistSdpFactory.java:62)
    at pl.mk.touchpad.server.ext.SdpUtils.parseSDP(SdpUtils.java:76)
    at pl.mk.touchpad.server.ext.RemoteConnector.pair(RemoteConnector.java:62)
    at pl.mk.touchpad.connection.net.punching.RemoteActiveConnector.connect(RemoteActiveConnector.java:66)
    at pl.mk.touchpad.connection.ControllingActivity.lambda$onCreate$0$pl-mk-touchpad-connection-ControllingActivity(ControllingActivity.java:53)
    at pl.mk.touchpad.connection.ControllingActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
    at java.lang.Thread.run(Thread.java:784)
javax.sdp.SdpParseException: o=ice4j.org 0 0 IN IP4 123.12.123.123
    at org.opentelecoms.javax.sdp.NistSdpFactory.createSessionDescription(NistSdpFactory.java:66)
    at pl.mk.touchpad.server.ext.SdpUtils.parseSDP(SdpUtils.java:76)
    at pl.mk.touchpad.server.ext.RemoteConnector.pair(RemoteConnector.java:62)
    at pl.mk.touchpad.connection.net.punching.RemoteActiveConnector.connect(RemoteActiveConnector.java:66)
    at pl.mk.touchpad.connection.ControllingActivity.lambda$onCreate$0$pl-mk-touchpad-connection-ControllingActivity(ControllingActivity.java:53)
    at pl.mk.touchpad.connection.ControllingActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
    at java.lang.Thread.run(Thread.java:784)

It seems to be thrown when calling .get() on LexerCore.currentLexer.

I've added the line currentLexer = new ConcurrentHashMap() to the constructor missing it, with Recaf. Android Studio and other decompilers confirm that it's being instantiated in both constructors (it's moved to the field declaration to be precise) but nothing changed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions