New project settings get set to null when deserializing old project files #491

Closed
Arhowk opened this Issue Feb 8, 2016 · 2 comments

Projects

None yet

3 participants

@Arhowk
Arhowk commented Feb 8, 2016

As of 1.2.0, I get this console output if I try to deploy GRIP to the roboRIO

/usr/local/frc/JRE//bin/java null -jar '/home/lvuser/grip.jar' '/home/lvuser/project.grip'
Error: Could not find or load main class null

GRIP file

<grip:Pipeline>
  <sources>
    <grip:Camera>
      <property name="address" value="http://axis-camera.local/mjpg/video.mjpg"/>
    </grip:Camera>
  </sources>
  <steps>
    <grip:Step name="HSV Threshold">
      <grip:Input step="0" socket="0"/>
      <grip:Input step="0" socket="1">
        <value>
          <double>63.129496402877706</double>
          <double>101.21212121212123</double>
        </value>
      </grip:Input>
      <grip:Input step="0" socket="2">
        <value>
          <double>174.28057553956833</double>
          <double>255.0</double>
        </value>
      </grip:Input>
      <grip:Input step="0" socket="3">
        <value>
          <double>123.83093525179854</double>
          <double>255.0</double>
        </value>
      </grip:Input>
      <grip:Output step="0" socket="0" previewed="true"/>
    </grip:Step>
    <grip:Step name="CV erode">
      <grip:Input step="1" socket="0"/>
      <grip:Input step="1" socket="1"/>
      <grip:Input step="1" socket="2"/>
      <grip:Input step="1" socket="3">
        <value>1.0</value>
      </grip:Input>
      <grip:Input step="1" socket="4">
        <value>BORDER_CONSTANT</value>
      </grip:Input>
      <grip:Input step="1" socket="5"/>
      <grip:Output step="1" socket="0" previewed="false"/>
    </grip:Step>
    <grip:Step name="CV dilate">
      <grip:Input step="2" socket="0"/>
      <grip:Input step="2" socket="1"/>
      <grip:Input step="2" socket="2"/>
      <grip:Input step="2" socket="3">
        <value>17.0</value>
      </grip:Input>
      <grip:Input step="2" socket="4">
        <value>BORDER_CONSTANT</value>
      </grip:Input>
      <grip:Input step="2" socket="5"/>
      <grip:Output step="2" socket="0" previewed="true"/>
    </grip:Step>
    <grip:Step name="Find Contours">
      <grip:Input step="3" socket="0"/>
      <grip:Input step="3" socket="1">
        <value>false</value>
      </grip:Input>
      <grip:Output step="3" socket="0" previewed="false"/>
    </grip:Step>
    <grip:Step name="Filter Contours">
      <grip:Input step="4" socket="0"/>
      <grip:Input step="4" socket="1">
        <value>400.0</value>
      </grip:Input>
      <grip:Input step="4" socket="2">
        <value>75.0</value>
      </grip:Input>
      <grip:Input step="4" socket="3">
        <value>0.0</value>
      </grip:Input>
      <grip:Input step="4" socket="4">
        <value>1000.0</value>
      </grip:Input>
      <grip:Input step="4" socket="5">
        <value>0.0</value>
      </grip:Input>
      <grip:Input step="4" socket="6">
        <value>1000.0</value>
      </grip:Input>
      <grip:Input step="4" socket="7">
        <value>
          <int>0</int>
          <int>100</int>
        </value>
      </grip:Input>
      <grip:Output step="4" socket="0" previewed="true"/>
    </grip:Step>
    <grip:Step name="Publish ContoursReport">
      <grip:Input step="5" socket="0"/>
      <grip:Input step="5" socket="1">
        <value>stupidGarbage</value>
      </grip:Input>
      <grip:Input step="5" socket="2">
        <value>true</value>
      </grip:Input>
      <grip:Input step="5" socket="3">
        <value>true</value>
      </grip:Input>
      <grip:Input step="5" socket="4">
        <value>true</value>
      </grip:Input>
      <grip:Input step="5" socket="5">
        <value>true</value>
      </grip:Input>
      <grip:Input step="5" socket="6">
        <value>true</value>
      </grip:Input>
      <grip:Input step="5" socket="7">
        <value>true</value>
      </grip:Input>
    </grip:Step>
  </steps>
  <connections>
    <grip:Connection>
      <grip:Output step="0" socket="0" previewed="true"/>
      <grip:Input step="2" socket="0"/>
    </grip:Connection>
    <grip:Connection>
      <grip:Output step="2" socket="0" previewed="true"/>
      <grip:Input step="3" socket="0"/>
    </grip:Connection>
    <grip:Connection>
      <grip:Output step="0" socket="0" previewed="true"/>
      <grip:Input step="1" socket="0"/>
    </grip:Connection>
    <grip:Connection>
      <grip:Output step="3" socket="0" previewed="false"/>
      <grip:Input step="4" socket="0"/>
    </grip:Connection>
    <grip:Connection>
      <grip:Output step="4" socket="0" previewed="true"/>
      <grip:Input step="5" socket="0"/>
    </grip:Connection>
    <grip:Connection>
      <grip:Output source="0" socket="0" previewed="true"/>
      <grip:Input step="0" socket="0"/>
    </grip:Connection>
  </connections>
  <settings>
    <teamNumber>1684</teamNumber>
    <publishAddress>roborio-1684-frc.local</publishAddress>
    <deployAddress>roborio-1684-frc.local</deployAddress>
    <deployDir>/home/lvuser</deployDir>
    <deployUser>lvuser</deployUser>
    <deployJavaHome>/usr/local/frc/JRE/</deployJavaHome>
  </settings>
</grip:Pipeline>
@ThomasJClark
Contributor

As a workaround, go to Tools > Settings and set "Deploy JVM Options" to something. -Xmx50m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError is usually the default.

@Arhowk
Arhowk commented Feb 9, 2016

Worked, for now. Back to old issue.

@ThomasJClark ThomasJClark self-assigned this Feb 9, 2016
@ThomasJClark ThomasJClark added a commit to ThomasJClark/GRIP that referenced this issue Feb 11, 2016
@ThomasJClark ThomasJClark Fix deserializing ProjectSettings from previous GRIP versions
When opening projects with missing settings, we should use the default
values for those settings.  By default, XStream sets them to null, but
we can override that using `PureJavaReflectionProvider`.

Closes #491
d755f04
@ThomasJClark ThomasJClark added this to the v1.3.0 milestone Feb 11, 2016
@JLLeitschuh JLLeitschuh modified the milestone: v1.2.1, v1.3.0 Feb 12, 2016
@ThomasJClark ThomasJClark added a commit to ThomasJClark/GRIP that referenced this issue Feb 12, 2016
@ThomasJClark ThomasJClark Fix deserializing ProjectSettings from previous GRIP versions
When opening projects with missing settings, we should use the default
values for those settings.  By default, XStream sets them to null, but
we can override that using `PureJavaReflectionProvider`.

Closes #491
bf70dd3
@ThomasJClark ThomasJClark added a commit to ThomasJClark/GRIP that referenced this issue Feb 12, 2016
@ThomasJClark ThomasJClark Fix deserializing ProjectSettings from previous GRIP versions
When opening projects with missing settings, we should use the default
values for those settings.  By default, XStream sets them to null, but
we can override that using `PureJavaReflectionProvider`.

Closes #491
d279ed4
@JLLeitschuh JLLeitschuh changed the title from Could not find main class "null" to New project settings get set to null when deserializing old project files Feb 12, 2016
@JLLeitschuh JLLeitschuh closed this in #495 Feb 12, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment