Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NullPointerException in MessageFactory when trying to test on real device #384

Open
Gyran opened this issue Jul 10, 2015 · 2 comments
Open

Comments

@Gyran
Copy link

Gyran commented Jul 10, 2015

I have built the latest snapshot of the dev branch and the mac I run on has xcode 6.4. I start the standalone server with the -beta flag. When I check the hub status page everything seems fine and I can see my plugged in devices. When I try to connect to the driver with these capabilities:

{
     "CFBundleName": "Safari",
      "device": "iphone",
      "language": "en",
      "locale": "en_GB",
      "simulator": false
}

Safari starts but the crash after a few seconds. I have tested both with an iphone running 8.3 and 7.0.4.

Am I missing something or have I forgot something?

Administrators-MacBook-Pro-2:Downloads gyran$ java -jar ios-server-standalone-0.6.6-SNAPSHOT-f0c282a6bb43683ec73cbc7b92f152d1c25f6e7e-jar-with-dependencies.jar -port 4444 -beta
19:40:714 INFO ApplicationStore.<init>  App archive folder:/Users/gyran/Downloads/applications
version:f0c282a6bb43683ec73cbc7b92f152d1c25f6e7e
Beta features enabled (enabled by -real flag): true
Simulator enabled : true
Inspector: http://0.0.0.0:4444/inspector/
Tests can access the server at http://0.0.0.0:4444/wd/hub
Server status: http://0.0.0.0:4444/wd/hub/status
Connected devices: http://0.0.0.0:4444/wd/hub/devices/all
Applications: http://0.0.0.0:4444/wd/hub/applications/all
Capabilities: http://0.0.0.0:4444/wd/hub/capabilities/all
Monitoring '/Users/gyran/Downloads/applications' for new applications
Archived apps: /Users/gyran/Downloads/applications
Build info: ios-driver 0.6.6-SNAPSHOT (built:20150710-0801,sha:f0c282a6bb43683ec73cbc7b92f152d1c25f6e7e)
Running on: Mac OS X 10.10.1 (x86_64)
Using java: 1.8.0_45
Using Xcode install: /Applications/Xcode.app
Using instruments: version:6.4, build: 57082
Using iOS version 8.4
19:41:150 INFO DeviceStore.onDeviceAdded  new device detected (d9fb52c53f6b3b80ed7ae3d404ff83aed1517ce9) Tze German
iOS >= 6.0. Safari and hybrid apps are supported.
Applications :
        CFBundleName=Safari,CFBundleVersion=600.1.4,/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.4.sdk/Applications/MobileSafari.app
2015-07-10 09:19:41.529:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
2015-07-10 09:19:41.577:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:4444
19:41:985 INFO DeviceStore.onDeviceAdded  device Tze German = safari 600.1.4
19:42:251 INFO DeviceStore.onDeviceAdded  new device detected (71f9a1563fdc1839a59b9c0118ad117ad38a7445) Michelangelo
19:42:745 INFO DeviceStore.onDeviceAdded  device Michelangelo = safari 9537.53
20:23:100 INFO APPIOSApplication.canRun  The application doesn't have any content files. Localization related features won't be available.
20:23:100 INFO APPIOSApplication.canRun  The application doesn't have any content files. Localization related features won't be available.
20:28:397 SEVERE MessageFactory.create  format errorjava.lang.NullPointerException
        at org.uiautomation.ios.wkrdp.message.MessageFactory.determineIOSVersion(MessageFactory.java:174)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.getImplementationClassFor(MessageFactory.java:137)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.create(MessageFactory.java:106)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.process(DefaultMessageHandler.java:75)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.access$000(DefaultMessageHandler.java:37)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler$1.run(DefaultMessageHandler.java:66)

20:28:503 SEVERE MessageFactory.create  format errorjava.lang.NullPointerException
        at org.uiautomation.ios.wkrdp.message.MessageFactory.determineIOSVersion(MessageFactory.java:174)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.getImplementationClassFor(MessageFactory.java:137)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.create(MessageFactory.java:106)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.process(DefaultMessageHandler.java:75)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.access$000(DefaultMessageHandler.java:37)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler$1.run(DefaultMessageHandler.java:66)

20:28:549 SEVERE MessageFactory.create  format errorjava.lang.NullPointerException
        at org.uiautomation.ios.wkrdp.message.MessageFactory.determineIOSVersion(MessageFactory.java:174)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.getImplementationClassFor(MessageFactory.java:137)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.create(MessageFactory.java:106)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.process(DefaultMessageHandler.java:75)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.access$000(DefaultMessageHandler.java:37)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler$1.run(DefaultMessageHandler.java:66)

20:28:602 SEVERE MessageFactory.create  format errorjava.lang.NullPointerException
        at org.uiautomation.ios.wkrdp.message.MessageFactory.determineIOSVersion(MessageFactory.java:174)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.getImplementationClassFor(MessageFactory.java:137)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.create(MessageFactory.java:106)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.process(DefaultMessageHandler.java:75)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.access$000(DefaultMessageHandler.java:37)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler$1.run(DefaultMessageHandler.java:66)

20:28:654 SEVERE MessageFactory.create  format errorjava.lang.NullPointerException
        at org.uiautomation.ios.wkrdp.message.MessageFactory.determineIOSVersion(MessageFactory.java:174)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.getImplementationClassFor(MessageFactory.java:137)
        at org.uiautomation.ios.wkrdp.message.MessageFactory.create(MessageFactory.java:106)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.process(DefaultMessageHandler.java:75)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.access$000(DefaultMessageHandler.java:37)
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler$1.run(DefaultMessageHandler.java:66)

20:38:212 WARNING NewSessionNHandler.safeStart  Error starting the session.is Safari started and with the focus ?
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'Administrators-MacBook-Pro-2.local', ip: '10.99.12.114', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.8.0_45'
Driver info: driver.version: IOSDualDriver
20:38:254 WARNING WebKitRemoteDebugProtocol$1.run  listener threadjava.lang.IllegalStateException: stopped
        at org.uiautomation.ios.wkrdp.internal.DefaultMessageHandler.handle(DefaultMessageHandler.java:60)
        at org.uiautomation.ios.wkrdp.internal.RealDeviceProtocolImpl.read(RealDeviceProtocolImpl.java:71)
        at org.uiautomation.ios.wkrdp.internal.WebKitRemoteDebugProtocol$1.run(WebKitRemoteDebugProtocol.java:74)
        at java.lang.Thread.run(Thread.java:745)

20:38:269 WARNING NewSessionNHandler.safeStart  app has crashed at startup :normal
@adataylor
Copy link
Contributor

I'm getting the same error- testing on 7.1.2 and 8.3.

Seems like I'm getting a report setting message with a missing WIRSIMULATORPRODUCTVERSIONKEY field. It then tries to find the version with every successive message too, and still doesn't have success.

Raw Message:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>__selector</key>
<string>_rpc_reportSetup:</string>
<key>__argument</key>
<dict>
</dict>
</dict>
</plist>

Additionally, using /wd/hub/capabilities/all I can tell the versions of the devices- that part is detected just fine from there.

@adataylor
Copy link
Contributor

I've added a fix for this- the physical device does not put the same information into all of its messages, hence the NPE. The version list was also incomplete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants