Juraji / image-manager-2

Liked https://github.com/Juraji/Pinterest-Downloader? You're gonna love this one!
GNU General Public License v3.0
4 stars 1 forks source link

Initializing web session hangs, then ultimately fails #8

Open Flurrywinde opened 5 years ago

Flurrywinde commented 5 years ago

Describe the bug I switched to the 2.0.0 release instead of beta, input the same login info, then tried to add pinterest boards. It seemed to hang at "Initializing web session" (time 11:11:35.766 in the log below), but then much later gave the exception.

To Reproduce

  1. Select Directories->Add Pinterest Board

Expected behavior Pinterest boards should show up in the table.

Desktop (please complete the following information):

Additional context

11:11:08.565 [JavaFX Application Thread] INFO  i.e.config.properties.LoadContext: loaded properties from []
11:11:08.718 [JavaFX Application Thread] INFO  i.e.datasource.pool.ConnectionPool: DataSourcePool [storage] autoCommit[false] transIsolation[READ_COMMITTED] min[2] max[200]
11:11:09.096 [JavaFX Application Thread] INFO  io.ebean.internal.DefaultContainer: DatabasePlatform name:storage platform:h2
11:11:09.798 [JavaFX Application Thread] INFO  io.ebean.migration.MigrationRunner: local migrations:6  existing migrations:6  checkState:false
11:11:34.455 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkDialog: Executing task "Fetching Pinterest boards..."
11:11:35.766 [Thread-8] INFO  i.g.bonigarcia.wdm.WebDriverManager: Using chromedriver 2.46 (since Google Chrome 73 is installed in your machine)
Exception in thread "Thread-8" java.lang.NullPointerException
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.persistDriverCookies(PinterestWebTask.java:160)
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.done(PinterestWebTask.java:64)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:251)
    at java.util.concurrent.FutureTask.run(FutureTask.java:271)
    at java.lang.Thread.run(Thread.java:748)
11:17:46.220 [JavaFX Application Thread] ERROR n.j.i.fxml.dialogs.WorkDialog: Error executing task
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:140)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219)
    at javafx.concurrent.Task.fireEvent(Task.java:1356)
    at javafx.concurrent.Task.setState(Task.java:707)
    at javafx.concurrent.Task$TaskCallable.lambda$call$2(Task.java:1453)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1465)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 1 common frames omitted
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:300)
    at java.lang.StringCoding.encode(StringCoding.java:344)
    at java.lang.String.getBytes(String.java:918)
    at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
    at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
    at java.io.File.isDirectory(File.java:849)
    at org.apache.commons.io.filefilter.DirectoryFileFilter.accept(DirectoryFileFilter.java:71)
    at org.apache.commons.io.filefilter.NotFileFilter.accept(NotFileFilter.java:56)
    at org.apache.commons.io.filefilter.AndFileFilter.accept(AndFileFilter.java:128)
    at org.apache.commons.io.filefilter.OrFileFilter.accept(OrFileFilter.java:123)
    at java.io.File.listFiles(File.java:1291)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:473)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:147)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219)
    at javafx.concurrent.Task.fireEvent(Task.java:1356)
    at javafx.concurrent.Task.setState(Task.java:707)
    at javafx.concurrent.Task$TaskCallable.lambda$call$2(Task.java:1453)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:140)
    ... 19 more
Caused by: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1465)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 1 more
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:300)
    at java.lang.StringCoding.encode(StringCoding.java:344)
    at java.lang.String.getBytes(String.java:918)
    at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
    at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
    at java.io.File.isDirectory(File.java:849)
    at org.apache.commons.io.filefilter.DirectoryFileFilter.accept(DirectoryFileFilter.java:71)
    at org.apache.commons.io.filefilter.NotFileFilter.accept(NotFileFilter.java:56)
    at org.apache.commons.io.filefilter.AndFileFilter.accept(AndFileFilter.java:128)
    at org.apache.commons.io.filefilter.OrFileFilter.accept(OrFileFilter.java:123)
    at java.io.File.listFiles(File.java:1291)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:473)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
    at org.apache.commons.io.FileUtils.innerListFiles(FileUtils.java:481)
Flurrywinde commented 5 years ago

I did some more work on this. I copied image-manager-2.0.0.jar to a new folder, thinking maybe somehow the database from the beta version was the problem. Long story short, eventually it worked! BUT I had to do everything twice. Directories->Add Pinterest Board came up empty the first time, but on the second try, it came up with my 2 public boards (but still not my 1 secret board).

The Index all directories came up empty on the first try too, but on the second try, it succeeded.

Here's the output if it helps:

08:00:49.739 [JavaFX Application Thread] INFO  io.ebean.EbeanVersion: ebean version: 11.36.2
08:00:49.833 [JavaFX Application Thread] INFO  i.e.config.properties.LoadContext: loaded properties from []
08:00:49.966 [JavaFX Application Thread] INFO  i.e.datasource.pool.ConnectionPool: DataSourcePool [storage] autoCommit[false] transIsolation[READ_COMMITTED] min[2] max[200]
08:00:50.198 [JavaFX Application Thread] INFO  io.ebean.internal.DefaultContainer: DatabasePlatform name:storage platform:h2
08:00:50.765 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing create migration table - 1 statements
08:00:50.773 [JavaFX Application Thread] WARN  o.a.c.s.i.s.c.ClassPathScanner: Unable to resolve location classpath:dbinit
08:00:50.774 [JavaFX Application Thread] INFO  io.ebean.migration.MigrationRunner: local migrations:6  existing migrations:0  checkState:false
08:00:50.775 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.0__initial - 17 statements
08:00:50.804 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.1 - 3 statements
08:00:50.817 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.2__dropsFor_1.1 - 4 statements
08:00:50.838 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.3 - 2 statements
08:00:50.840 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.4 - 2 statements
08:00:50.850 [JavaFX Application Thread] INFO  io.ebean.DDL: Executing run migration version: 1.5__dropsFor_1.4 - 1 statements
08:02:09.674 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkDialog: Executing task "Fetching Pinterest boards..."
08:02:10.721 [Thread-8] INFO  i.g.bonigarcia.wdm.WebDriverManager: Using chromedriver 2.46 (since Google Chrome 73 is installed in your machine)
08:02:10.749 [Thread-8] INFO  i.g.bonigarcia.wdm.WebDriverManager: Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
08:02:12.419 [Thread-8] INFO  io.github.bonigarcia.wdm.Downloader: Downloading https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip
08:03:23.666 [Thread-8] INFO  io.github.bonigarcia.wdm.Downloader: Extracting binary from compressed file chromedriver_linux64.zip
08:03:23.782 [Thread-8] INFO  i.g.bonigarcia.wdm.WebDriverManager: Exporting webdriver.chrome.driver as ./chromedriver/linux64/2.46/chromedriver
08:03:23.943 [Thread-8] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
Starting ChromeDriver 2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926) on port 15787
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Apr 06, 2019 8:03:24 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
08:03:24.839 [Thread-8] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:03:24.844 [Thread-8] INFO  n.j.i.t.p.FetchPinterestBoardsTask: Initializing driver for https://pinterest.com
08:03:46.852 [Thread-8] INFO  n.j.i.t.p.FetchPinterestBoardsTask: Driver: Not authenticated, logging in as kkubose
08:03:49.796 [JavaFX Application Thread] ERROR n.j.i.fxml.dialogs.WorkDialog: Error executing task
java.util.concurrent.ExecutionException: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: gridCentered (tried for 2 second(s) with 500 milliseconds interval)
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:140)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219)
    at javafx.concurrent.Task.fireEvent(Task.java:1356)
    at javafx.concurrent.Task.setState(Task.java:707)
    at javafx.concurrent.Task$TaskCallable.lambda$call$2(Task.java:1453)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: gridCentered (tried for 2 second(s) with 500 milliseconds interval)
    at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:95)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272)
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.getElementBy(PinterestWebTask.java:165)
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.init(PinterestWebTask.java:111)
    at nl.juraji.imagemanager.tasks.pinterest.FetchPinterestBoardsTask.call(FetchPinterestBoardsTask.java:34)
    at nl.juraji.imagemanager.tasks.pinterest.FetchPinterestBoardsTask.call(FetchPinterestBoardsTask.java:24)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 1 common frames omitted
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"class name","selector":"gridCentered"}
  (Session info: headless chrome=73.0.3683.103)
  (Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.15.0-47-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'kanon-HP-280-G1-MT', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-47-generic', java.version: '1.8.0_191'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.46.628388 (4a34a70827ac54..., userDataDir: /tmp/.org.chromium.Chromium...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:45759}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 73.0.3683.103, webStorageEnabled: true}
Session ID: f3a6c58d10b97ba9d8f7ea2d01d75d59
*** Element info: {Using=class name, value=gridCentered}
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementByClassName(RemoteWebDriver.java:412)
    at org.openqa.selenium.By$ByClassName.findElement(By.java:389)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:182)
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:179)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249)
    ... 7 common frames omitted
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: gridCentered (tried for 2 second(s) with 500 milliseconds interval)
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:147)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219)
    at javafx.concurrent.Task.fireEvent(Task.java:1356)
    at javafx.concurrent.Task.setState(Task.java:707)
    at javafx.concurrent.Task$TaskCallable.lambda$call$2(Task.java:1453)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: gridCentered (tried for 2 second(s) with 500 milliseconds interval)
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at nl.juraji.imagemanager.fxml.dialogs.WorkDialog.lambda$exec$2(WorkDialog.java:140)
    ... 19 more
Caused by: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: gridCentered (tried for 2 second(s) with 500 milliseconds interval)
    at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:95)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272)
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.getElementBy(PinterestWebTask.java:165)
    at nl.juraji.imagemanager.tasks.pinterest.PinterestWebTask.init(PinterestWebTask.java:111)
    at nl.juraji.imagemanager.tasks.pinterest.FetchPinterestBoardsTask.call(FetchPinterestBoardsTask.java:34)
    at nl.juraji.imagemanager.tasks.pinterest.FetchPinterestBoardsTask.call(FetchPinterestBoardsTask.java:24)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 1 more
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"class name","selector":"gridCentered"}
  (Session info: headless chrome=73.0.3683.103)
  (Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.15.0-47-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'kanon-HP-280-G1-MT', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-47-generic', java.version: '1.8.0_191'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.46.628388 (4a34a70827ac54..., userDataDir: /tmp/.org.chromium.Chromium...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:45759}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 73.0.3683.103, webStorageEnabled: true}
Session ID: f3a6c58d10b97ba9d8f7ea2d01d75d59
*** Element info: {Using=class name, value=gridCentered}
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementByClassName(RemoteWebDriver.java:412)
    at org.openqa.selenium.By$ByClassName.findElement(By.java:389)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:182)
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:179)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249)
    ... 7 more
08:03:49.842 [Thread-8] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:04:38.886 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkDialog: Executing task "Fetching Pinterest boards..."
08:04:38.897 [Thread-12] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
08:04:38.937 [Thread-12] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:04:39.069 [Thread-12] INFO  n.j.i.t.p.FetchPinterestBoardsTask: New Resource request: BoardsResourceRequest{resourcePath=/_ngjs/resource/BoardsResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, isPrefetch=true, privacyFilter=all, sort=alphabetical, fieldSetKey=profile_grid_item, username=kkubose, pageSize=500, groupBy=visibility, includeArchived=true, reduxNormalizeFeed=true}
08:04:39.660 [Thread-12] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:04:39.849 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkDialog: Completed task "Fetching Pinterest boards..."
08:04:59.398 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Fetching Pinterest sections for Comic..."
08:04:59.402 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Fetching Pinterest sections for Fantasy..."
08:04:59.403 [Thread-13] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Start dequeuing and executing tasks...
08:04:59.406 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Fetching Pinterest sections for Comic..."
08:04:59.419 [Thread-14] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
08:04:59.428 [Thread-14] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:04:59.449 [Thread-14] INFO  n.j.i.t.p.ImportPinterestBoardSectionsTask: New Resource request: BoardSectionsResourceRequest{resourcePath=/_ngjs/resource/BoardSectionsResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.sections.BoardSectionsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, isPrefetch=false, boardId=25473622831486510, reduxNormalizeFeed=true}
08:05:00.628 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Fetching Pinterest sections for Comic..."
08:05:00.629 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Fetching Pinterest sections for Fantasy..."
08:05:00.630 [Thread-15] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
08:05:00.636 [Thread-14] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:00.648 [Thread-15] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:00.657 [Thread-15] INFO  n.j.i.t.p.ImportPinterestBoardSectionsTask: New Resource request: BoardSectionsResourceRequest{resourcePath=/_ngjs/resource/BoardSectionsResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.sections.BoardSectionsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, isPrefetch=false, boardId=25473622831522569, reduxNormalizeFeed=true}
08:05:02.305 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Fetching Pinterest sections for Fantasy..."
08:05:02.319 [Thread-15] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:36.138 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Indexing Pinterest board: Comic"
08:05:36.142 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Downloading images"
08:05:36.156 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Correcting file types"
08:05:36.175 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Creating hashes"
08:05:36.177 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Indexing Pinterest board: Fantasy"
08:05:36.177 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Downloading images"
08:05:36.177 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Correcting file types"
08:05:36.177 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Queued task "Creating hashes"
08:05:36.178 [Thread-16] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Start dequeuing and executing tasks...
08:05:36.180 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Indexing Pinterest board: Comic"
08:05:36.188 [Thread-17] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
08:05:36.192 [Thread-17] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:36.209 [Thread-17] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: New Resource request: BoardPageResourceRequest{resourcePath=/resource/BoardPageResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardPageResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, isPrefetch=false, username=kkubose, slug=comic, fieldSetKey=detailed, mainModuleName=BoardPage}
08:05:36.545 [Thread-17] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Reindexing entire board!
08:05:36.545 [Thread-17] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Comic: Known pins: 0, Reported pin count: 1
08:05:36.547 [Thread-17] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: New Resource request: BoardPinsResourceRequest{resourcePath=/resource/BoardFeedResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardPinsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, bookmarks=null, isPrefetch=true, boardId=25473622831486510, fieldSetKey=react_grid_pin, filterSectionPins=true, layout=default, pageSize=100, reduxNormalizeFeed=true}
08:05:37.399 [Thread-17] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Fetched 1 new pins for Comic
08:05:37.420 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Indexing Pinterest board: Comic"
08:05:37.421 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Downloading images"
08:05:37.427 [Thread-17] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:37.434 [Thread-18] INFO  n.j.i.t.p.DownloadPinterestBoardTask: Created directory for Comic: /home/kanon/Downloads/pics4cyoa/pinterest/Comic
08:05:37.441 [Thread-18] INFO  n.j.i.t.p.DownloadPinterestBoardTask: Downloading pin: https://i.pinimg.com/originals/c0/6e/1f/c06e1f08e114f2b93e5ff936d7777ffc.jpg to /home/kanon/Downloads/pics4cyoa/pinterest/Comic/25473554120390261 - Emma Frost - Marvel comics.jpg
08:05:39.118 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Downloading images for board Comic"
08:05:39.123 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Correcting file types"
08:05:39.257 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Correcting file types for Comic"
08:05:39.258 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Creating hashes"
08:05:39.272 [Thread-20] INFO  n.j.i.tasks.HashDirectoryTask: Generating hash for /home/kanon/Downloads/pics4cyoa/pinterest/Comic/25473554120390261 - Emma Frost - Marvel comics.jpg
08:05:40.069 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Creating hashes for: Comic"
08:05:40.070 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Indexing Pinterest board: Fantasy"
08:05:40.071 [Thread-21] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance requested
08:05:40.079 [Thread-21] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance available: f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:40.099 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: New Resource request: BoardPageResourceRequest{resourcePath=/resource/BoardPageResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardPageResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, isPrefetch=false, username=kkubose, slug=fantasy, fieldSetKey=detailed, mainModuleName=BoardPage}
08:05:40.533 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Reindexing entire board!
08:05:40.534 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Fantasy: Known pins: 0, Reported pin count: 186
08:05:40.534 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: New Resource request: BoardPinsResourceRequest{resourcePath=/resource/BoardFeedResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardPinsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, bookmarks=null, isPrefetch=true, boardId=25473622831522569, fieldSetKey=react_grid_pin, filterSectionPins=true, layout=default, pageSize=100, reduxNormalizeFeed=true}
08:05:41.700 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: New Resource request: BoardPinsResourceRequest{resourcePath=/resource/BoardFeedResource/get/, responseType=class nl.juraji.imagemanager.model.web.pinterest.resources.boards.BoardPinsResourceResult, method=GET, headers={X-Pinterest-AppState=active, X-APP-VERSION=b7fcdbc}, bookmarks=[LT4yNTQ3MzU1NDEyNzUyODkwNDoxMDA6OTl8ZGJkNmE3NTA3Y2Y3OTQ4NTRkZGM1NGQzMTgyZmRmOTRiMjk3YWFkZGI0ZjVkMDNkY2M0MWU5MTg2M2Q2YmQyNg==], isPrefetch=true, boardId=25473622831522569, fieldSetKey=react_grid_pin, filterSectionPins=true, layout=default, pageSize=100, reduxNormalizeFeed=true}
08:05:43.072 [Thread-21] INFO  n.j.i.t.p.IndexBoardPinsFeedTask: Fetched 186 new pins for Fantasy
08:05:43.143 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Completed task "Indexing Pinterest board: Fantasy"
08:05:43.143 [JavaFX Application Thread] INFO  n.j.i.fxml.dialogs.WorkQueueDialog: Executing task "Downloading images"
08:05:43.161 [Thread-21] INFO  n.j.i.util.io.web.WebDriverPool: Driver instance returned f3a6c58d10b97ba9d8f7ea2d01d75d59
08:05:43.163 [Thread-22] INFO  n.j.i.t.p.DownloadPinterestBoardTask: Created directory for Fantasy: /home/kanon/Downloads/pics4cyoa/pinterest/Fantasy
08:05:43.176 [Thread-22] INFO  n.j.i.t.p.DownloadPinterestBoardTask: Downloading pin: https://i.pinimg.com/originals/43/b9/35/43b935eb891df09418f19758f540e19c.jpg to /home/kanon/Downloads/pics4cyoa/pinterest/Fantasy/25473554127724489 - Gypsy.jpg
...
Juraji commented 5 years ago

I reckon Linux Ubuntu is going to be quite the arch nemisis for Image Manager... The first error baffles me, the second, seems like Chrome didn't load Pinterest the first time, but did the second time...

I haven't really had time to look into this. But I will do this week! If you're interested in further investigation, try running Image Manager with the --debug flag: $ java -jar image-manager-2.0.0.jar --debug This will make the the hidden browser show, enableing you to see what it is doing in the background. It might shed some light on the situation.

Juraji commented 5 years ago

Hey @Flurrywinde, I've released a new version! It's now compatible with the standard Java installation for Linux. Could you check it out and see if it resolves the issues you're having?

Flurrywinde commented 5 years ago

Sorry for the long delay. I did try it, though, but I couldn't select anything from the menus. They would show up but disappear when I tried to move the mouse down to click on something.