Skip to content

App Crashes When Accessing Recent Projects #1

@euptron

Description

@euptron

Problem Description

The app crashes with a NullPointerException when interacting with the Recent Project.

Steps to Reproduce the Behavior

  1. Open the CodeOps Studio app on a device running Android 14 (SDK 34).
  2. Click on Recent projects in the WelcomePane.

Expected Behavior

  • No crash or unexpected behavior when accessing the list of recent projects.

Crash Details

  • Crash Date: Tue Sep 03 10:48:43 GMT+03:00 2024
Crashlytics Issue ID

ba22d747cbd53061443dfc1c7a7698bf

  • Affected Users: 14 (including the reported device)

  • Thread: main

  • Exception: java.lang.NullPointerException
    Message:

    Attempt to invoke virtual method 'int java.lang.String.indexOf(int)' on a null object reference
    

    This error occurs when trying to interact with recent projects in the WelcomePane as a result of a null file path being passed to the File.exists method

Stack Trace

Non-fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.indexOf(int)' on a null object reference
   at java.io.File.isInvalid(File.java:193)
   at java.io.File.exists(File.java:808)
   at com.eup.codeopsstudio.ui.editor.panes.WelcomePane.lambda$getRecentProjects$20(WelcomePane.java)
   at java.util.Optional.map(Optional.java:260)
   at com.eup.codeopsstudio.ui.editor.panes.WelcomePane.lambda$getRecentProjects$21(WelcomePane.java:535)
   at org.apache.commons.io.file.PathUtils$$ExternalSyntheticLambda0.test(R8$$SyntheticClass:14)
   at java.util.ArrayList.removeIf(ArrayList.java:1772)
   at java.util.ArrayList.removeIf(ArrayList.java:1760)
   at com.eup.codeopsstudio.ui.editor.panes.WelcomePane.getRecentProjects(WelcomePane.java:533)
   at com.eup.codeopsstudio.ui.editor.panes.WelcomePane.onViewCreated(WelcomePane.java:144)
   at com.eup.codeopsstudio.pane.Pane.createView(Pane.java:349)
   at com.eup.codeopsstudio.ui.editor.BaseFragment.addPane(BaseFragment.java:549)
   at com.eup.codeopsstudio.ui.editor.BaseFragment.restorePersistedPanes(BaseFragment.java:996)
   at com.eup.codeopsstudio.ui.editor.BaseFragment.restorePersistedPanes(BaseFragment.java:983)
   at com.eup.codeopsstudio.ui.editor.BaseFragment.onViewCreated(BaseFragment.java:203)
   at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3147)
   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588)
   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
   at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
   at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
   at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
   at androidx.fragment.app.FragmentManager.dispatchViewCreated(FragmentManager.java:2945)
   at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3148)
   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588)
   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839)
   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
   at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3042)
   at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
   at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
   at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
   at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java)
   at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1701)
   at android.app.Activity.performStart(Activity.java:9003)
   at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4018)
   at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:327)
   at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:307)
   at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:279)
   at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:150)
   at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:93)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2595)
   at android.os.Handler.dispatchMessage(Handler.java:107)
   at android.os.Looper.loopOnce(Looper.java:232)
   at android.os.Looper.loop(Looper.java:317)
   at android.app.ActivityThread.main(ActivityThread.java:8592)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)

System Information

  • Package Name: com.eup.codeopsstudio
  • App Version: 1.0.0 (1)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions